Data Science and Machine Learning

Group Project BUY&GO

Tiago Rodrigues

10-04-2021

Table of Contents¶

  • 1. Import Libraries
  • 2. Data pre-processing and Understanding
    • 2.1 Collect and merge the data
    • 2.2 Data caracterization
    • 2.3 Explore and understand the data
      • 2.3.1 Statistical Exploration
      • 2.3.2 Demographics
  • 3. Data transformation
    • 3.1 Data cleaning
      • 3.1.1 Outliers
      • 3.1.2 Misclassifications
      • 3.1.3 Missing values
    • 3.2 Data transformation
      • 3.2.1 Create new variables
      • 3.2.2 Drop non-relevant and redudant variables
      • 3.2.3 Binning
    • 3.3 Check for incoherencies
    • 3.4 Create dummy Variables
    • 3.5 Normalize data
    • 3.6 Power Transform
    • 3.7 Create flag variables for the transformed variables
    • 3.8 Data Frame demographics
  • 4. Modelling
    • 4.1 Clustering via K-means
      • 4.1.1 Product usage segmentation
      • 4.1.2 key Insights
      • 4.2.1 Costumer value segmentation (Recency vs Mnt vs Freq)
      • 4.2.2 Key insights
      • 4.3.1 Costumer segmentation by campaign acceptance
      • 4.3.2 Key insights
    • 4.4 Insights of crossing the different segmentations
    • 4.5 Clustering with Gaussian mixture vs Agglomerative Clustering

1. Import Libraries¶

In [283]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import MinMaxScaler
import math
from matplotlib.patches import Patch
from matplotlib.lines import Line2D
from scipy.stats import boxcox
from scipy.special import inv_boxcox
from sklearn.preprocessing import power_transform
import scipy as sp
from scipy import stats
from matplotlib import gridspec
from numpy import unique
from numpy import where

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import silhouette_score
from sklearn.preprocessing import StandardScaler
from kneed import KneeLocator, DataGenerator
from scipy.cluster import hierarchy

Funções auxiliares

In [284]:
def stats (lista):
    
    median = '{:.2f}'.format(lista.median())
    Q1 = '{:.2f}'.format(np.percentile(lista, 25))
    Q3 = '{:.2f}'.format(np.percentile(lista, 75))
    skew = '{:.2f}'.format(sp.stats.skew(lista) )
    return (median, Q1, Q3, skew)
In [285]:
def stats2 (lista):
    
    mean = '{:.2f}'.format(lista.mean())
    Q1 = '{:.2f}'.format(np.percentile(lista, 25))
    Q3 = '{:.2f}'.format(np.percentile(lista, 75))
    skew = '{:.2f}'.format(sp.stats.skew(lista) )
    return (mean, Q1, Q3, skew)

2. Data pre-processing and Understanding¶

2.1 Collect and merge the data¶

In [286]:
df1_original = pd.read_excel('demographic.xlsx')
df2_original = pd.read_csv('firmographic.csv')
In [287]:
df1 = df1_original
df1.set_index('Card_ID', inplace = True)
df1.drop_duplicates(inplace = True)
df1.head(n=5)
Out[287]:
Name Year_Birth Education Marital_Status Income Kidhome Teenhome Region Country
Card_ID
10003075 Mr. Adam Glover 1981 Master Together 90782.0 0 0 Cork Ireland
10003076 Mr. Cameron McDonald 1993 PhD Single 113023.0 0 0 Kinsale Ireland
10003078 Mr. Keith Davidson 1982 PhD Single 93571.0 0 1 Cork Ireland
10003079 Mr. Alexander Gill 1978 PhD Single 91852.0 0 1 Kinsale Ireland
10003080 Mr. Neil Piper 1968 PhD Married 22386.0 1 1 Cork Ireland
In [288]:
df2 = df2_original
df2.set_index('Card_ID', inplace = True)
df2.drop_duplicates(inplace = True)
df2.head(n=5)
Out[288]:
Dt_Customer Recency MntGroceries MntStationery MntHouseKeeping MntWellness_&_Beauty MntElectronics_&_Supplies MntLimitedEdition NumDealsPurchases NumWebPurchases NumCatalogPurchases NumStorePurchases NumWebVisitsMonth AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Complain
Card_ID
10003075 11/3/2018 66 622.0 70.0 678.0 NaN 51.0 34.0 1 12 7 10 4 0 1 0 0 0 0
10003076 4/18/2019 6 1014.0 15.0 643.0 74.0 36.0 36.0 1 9 4 8 1 0 0 0 0 0 0
10003078 7/22/2018 10 639.0 88.0 185.0 64.0 53.0 160.0 3 13 5 13 5 0 0 0 0 0 0
10003079 2/3/2018 26 806.0 56.0 350.0 54.0 54.0 260.0 1 15 9 11 6 0 0 0 1 0 0
10003080 10/31/2018 65 32.0 1.0 29.0 2.0 0.0 20.0 5 9 3 3 9 1 0 0 0 0 0
In [289]:
df = df1.merge(df2, on = 'Card_ID' )
df.head(n=5)
Out[289]:
Name Year_Birth Education Marital_Status Income Kidhome Teenhome Region Country Dt_Customer ... NumWebPurchases NumCatalogPurchases NumStorePurchases NumWebVisitsMonth AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Complain
Card_ID
10003075 Mr. Adam Glover 1981 Master Together 90782.0 0 0 Cork Ireland 11/3/2018 ... 12 7 10 4 0 1 0 0 0 0
10003076 Mr. Cameron McDonald 1993 PhD Single 113023.0 0 0 Kinsale Ireland 4/18/2019 ... 9 4 8 1 0 0 0 0 0 0
10003078 Mr. Keith Davidson 1982 PhD Single 93571.0 0 1 Cork Ireland 7/22/2018 ... 13 5 13 5 0 0 0 0 0 0
10003079 Mr. Alexander Gill 1978 PhD Single 91852.0 0 1 Kinsale Ireland 2/3/2018 ... 15 9 11 6 0 0 0 1 0 0
10003080 Mr. Neil Piper 1968 PhD Married 22386.0 1 1 Cork Ireland 10/31/2018 ... 9 3 3 9 1 0 0 0 0 0

5 rows × 28 columns

2.2 Data caracterization¶

In [290]:
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5000 entries, 10003075 to 10013073
Data columns (total 28 columns):
 #   Column                     Non-Null Count  Dtype  
---  ------                     --------------  -----  
 0   Name                       4999 non-null   object 
 1   Year_Birth                 5000 non-null   int64  
 2   Education                  5000 non-null   object 
 3   Marital_Status             5000 non-null   object 
 4   Income                     4948 non-null   float64
 5   Kidhome                    5000 non-null   int64  
 6   Teenhome                   5000 non-null   int64  
 7   Region                     5000 non-null   object 
 8   Country                    5000 non-null   object 
 9   Dt_Customer                5000 non-null   object 
 10  Recency                    5000 non-null   int64  
 11  MntGroceries               5000 non-null   float64
 12  MntStationery              5000 non-null   float64
 13  MntHouseKeeping            4907 non-null   float64
 14  MntWellness_&_Beauty       4935 non-null   float64
 15  MntElectronics_&_Supplies  5000 non-null   float64
 16  MntLimitedEdition          5000 non-null   float64
 17  NumDealsPurchases          5000 non-null   int64  
 18  NumWebPurchases            5000 non-null   int64  
 19  NumCatalogPurchases        5000 non-null   int64  
 20  NumStorePurchases          5000 non-null   int64  
 21  NumWebVisitsMonth          5000 non-null   int64  
 22  AcceptedCmp1               5000 non-null   int64  
 23  AcceptedCmp2               5000 non-null   int64  
 24  AcceptedCmp3               5000 non-null   int64  
 25  AcceptedCmp4               5000 non-null   int64  
 26  AcceptedCmp5               5000 non-null   int64  
 27  Complain                   5000 non-null   int64  
dtypes: float64(7), int64(15), object(6)
memory usage: 1.1+ MB
Data frame contains the following types of data:¶
  • Categorical:
    • Nominal : 'Education', 'Marital_Status', 'Region', 'Country', 'Name '
    • Dummy : 'AcceptedCmp1' ; 'AcceptedCmp2' ; 'AcceptedCmp3' ; 'AcceptedCmp4' ; 'AcceptedCmp5' ; 'Complain'
  • Numerical:
    • Interval : 'Custid', 'Year_Birth', 'Dt_Customer',
    • Ratio : 'Income' , 'Kidhome' , 'Teenhome' , 'Recency' , 'MntGroceries' , 'MntStationery' , 'MntHouseKeeping' , 'MntWellness_&Beauty', 'MntElectronics&_Supplies', 'MntLimitedEdition' , 'NumDealsPurchases' ,'NumWebPurchases', 'NumCatalogPurchases',n'NumStorePurchases' , 'NumWebVisitsMonth'
In [291]:
#Including only numeric columns in a DataFrame description.
df.describe(include=[np.number]).T
Out[291]:
count mean std min 25% 50% 75% max
Year_Birth 5000.0 1973.806600 11.870138 1946.0 1964.0 1975.0 1983.00 2002.00
Income 4948.0 69614.564198 28953.396355 2195.8 47075.5 69427.0 92119.75 187314.45
Kidhome 5000.0 0.440600 0.538265 0.0 0.0 0.0 1.00 2.00
Teenhome 5000.0 0.493600 0.546643 -1.0 0.0 0.0 1.00 2.00
Recency 5000.0 49.576400 29.000593 0.0 25.0 49.0 75.00 99.00
MntGroceries 5000.0 363.336740 400.096463 0.0 30.0 209.0 605.25 1799.00
MntStationery 5000.0 27.041220 40.069024 0.0 2.0 9.0 34.00 199.00
MntHouseKeeping 4907.0 185.105910 240.357283 0.0 18.0 73.0 256.50 1093.00
MntWellness_&_Beauty 4935.0 32.237285 47.312292 0.0 3.0 11.0 41.00 239.00
MntElectronics_&_Supplies 5000.0 35.049700 54.325949 0.0 3.0 11.0 42.00 315.00
MntLimitedEdition 5000.0 55.765500 69.240596 0.0 11.0 30.0 71.00 424.00
NumDealsPurchases 5000.0 2.258800 1.812313 0.0 1.0 2.0 3.00 15.00
NumWebPurchases 5000.0 10.244800 5.347990 1.0 8.0 10.0 12.00 231.00
NumCatalogPurchases 5000.0 4.546400 2.802395 0.0 2.0 4.0 6.00 13.00
NumStorePurchases 5000.0 5.730800 3.275191 0.0 3.0 5.0 8.00 13.00
NumWebVisitsMonth 5000.0 5.278600 3.148677 0.0 3.0 6.0 7.00 137.00
AcceptedCmp1 5000.0 0.080200 0.271630 0.0 0.0 0.0 0.00 1.00
AcceptedCmp2 5000.0 0.068600 0.252798 0.0 0.0 0.0 0.00 1.00
AcceptedCmp3 5000.0 0.077800 0.267883 0.0 0.0 0.0 0.00 1.00
AcceptedCmp4 5000.0 0.064200 0.245133 0.0 0.0 0.0 0.00 1.00
AcceptedCmp5 5000.0 0.011400 0.106171 0.0 0.0 0.0 0.00 1.00
Complain 5000.0 0.012400 0.110674 0.0 0.0 0.0 0.00 1.00

From the above table, the following conclusions are drawn:

  • count- The income variable has 4948 valid values. We have a problem of missing values in here. Moreover, some customers did not bought anything from 'Housekeeping' label products, or/and 'Wellness_&_Beauty'.
  • mean- In average, my customers have an income of 69614, and Groceries is in average the category where costumers spend more money.
  • std- The standard deviation of Income is quite high, which indicates that the values are spread out over a wider range.
  • max- Both the maximum number of visits per month and number of web purchases are quite high, which might be an outlier or error.
In [292]:
#Including only string columns in a DataFrame description
df.describe(include=[object]).T
Out[292]:
count unique top freq
Name 4999 4999 Mr. Christopher Short 1
Education 5000 11 PhD 2662
Marital_Status 5000 5 Married 2108
Region 5000 3 Kinsale 1695
Country 5000 3 Ireland 4994
Dt_Customer 5000 700 6/24/2018 18

From the table above the following can be concluded:

  • Name - There is a client that chose to remain anonymous, or failled to insert his/her Name
  • Education - The 11 unique entries must be reviewed as this name appears to be too high.

2.3 Explore and understand the data¶

2.3.1 Statistical Exploration¶

In [293]:
kt = df.skew()
kt 
Out[293]:
Year_Birth                   -0.104376
Income                        0.074944
Kidhome                       0.653025
Teenhome                      0.429628
Recency                      -0.008955
MntGroceries                  1.163000
MntStationery                 2.073507
MntHouseKeeping               1.662145
MntWellness_&_Beauty          2.081755
MntElectronics_&_Supplies     2.392493
MntLimitedEdition             2.313686
NumDealsPurchases             1.881128
NumWebPurchases              22.185112
NumCatalogPurchases           1.083225
NumStorePurchases             0.665959
NumWebVisitsMonth            14.689330
AcceptedCmp1                  3.092209
AcceptedCmp2                  3.414368
AcceptedCmp3                  3.153379
AcceptedCmp4                  3.557038
AcceptedCmp5                  9.207698
Complain                      8.815006
dtype: float64
In [294]:
#Function that list collumns with a kurt value higher then 3

kt = df.kurt()
kt 
Out[294]:
Year_Birth                    -0.830261
Income                        -0.556396
Kidhome                       -0.752638
Teenhome                      -0.913354
Recency                       -1.201001
MntGroceries                   0.570844
MntStationery                  3.976999
MntHouseKeeping                2.004285
MntWellness_&_Beauty           4.042067
MntElectronics_&_Supplies      6.106466
MntLimitedEdition              6.498925
NumDealsPurchases              4.731187
NumWebPurchases              796.641075
NumCatalogPurchases            0.543071
NumStorePurchases             -0.652685
NumWebVisitsMonth            611.872912
AcceptedCmp1                   7.564783
AcceptedCmp2                   9.661771
AcceptedCmp3                   7.946978
AcceptedCmp4                  10.656782
AcceptedCmp5                  82.814821
Complain                      75.734630
dtype: float64

If the dummy variables are filtered from the above list, the following collumns might need a special attention , due to its high kurtosis value : 'MntStationery', 'MntWellness_&Beauty', 'MntElectronics&_Supplies', 'MntLimitedEdition', 'NumDealsPurchases', 'NumWebPurchases', 'NumWebVisitsMonth'

In [295]:
for index, val in kt.iteritems():
    
    if val > 3 :
        print(index)
MntStationery
MntWellness_&_Beauty
MntElectronics_&_Supplies
MntLimitedEdition
NumDealsPurchases
NumWebPurchases
NumWebVisitsMonth
AcceptedCmp1
AcceptedCmp2
AcceptedCmp3
AcceptedCmp4
AcceptedCmp5
Complain
In [296]:
df_corr = df.corr(method = 'spearman')
figure = plt.figure(figsize=(16,10))
sns.heatmap(df_corr, annot=True, fmt = '.1g')
Out[296]:
<matplotlib.axes._subplots.AxesSubplot at 0x20159219848>

2.3.2 Demographics¶

In [297]:
fig, axes = plt.subplots(1,2, figsize = (15,6))

sns.histplot (ax = axes[0], data = df, x = 'MntStationery',kde=True,fill=False)
sns.histplot (ax = axes[1], data = df, x = 'MntWellness_&_Beauty',kde=True,fill=False)

mean_1 = round(df['MntStationery'].mean(),2)
mean_2 = round(df['MntWellness_&_Beauty'].mean(),2)

sdeviation_1 = round(df['MntStationery'].std(),2)
sdeviation_2 = round(df['MntWellness_&_Beauty'].std(),2)

median_1 = round(df['MntStationery'].median(),2)
median_2 = round(df['MntWellness_&_Beauty'].median(),2)

skew_1 = round(df['MntStationery'].skew(),2)
skew_2 = round(df['MntWellness_&_Beauty'].skew(),2)

string_1 = ' \u03BC = ' + str(mean_1) + "\n \u03C3 =" + str(sdeviation_1) + "\n median = " + str(median_1)
string_2 = ' \u03BC = ' + str(mean_2) + "\n \u03C3 =" + str(sdeviation_2) + "\n median = " + str(median_2)


props = dict(boxstyle='round', facecolor='white', alpha=0.5)   

axes[0].text(0.6, 0.8, string_1, transform=axes[0].transAxes, fontsize=14,
        verticalalignment='top' ,bbox=props)
axes[0].text(0.6, 0.6, "Skewness = " + str(skew_1), transform=axes[0].transAxes, fontsize=14,
       color= 'blue')

axes[1].text(0.6, 0.8, string_2, transform=axes[1].transAxes, fontsize=14,
        verticalalignment='top' ,bbox=props)
axes[1].text(0.6, 0.6, "Skewness = " + str(skew_2), transform=axes[1].transAxes, fontsize=14,
       color= 'blue')
plt.show()
In [298]:
fig, axes = plt.subplots(1,2, figsize = (15,6))

sns.histplot (ax = axes[0], data = df, x = 'MntElectronics_&_Supplies',kde=True,fill=False)
sns.histplot (ax = axes[1], data = df, x = 'MntLimitedEdition',kde=True,fill=False)

mean_1 = round(df['MntElectronics_&_Supplies'].mean(),2)
mean_2 = round(df['MntLimitedEdition'].mean(),2)

sdeviation_1 = round(df['MntElectronics_&_Supplies'].std(),2)
sdeviation_2 = round(df['MntLimitedEdition'].std(),2)

median_1 = round(df['MntElectronics_&_Supplies'].median(),2)
median_2 = round(df['MntLimitedEdition'].median(),2)

skew_1 = round(df['MntElectronics_&_Supplies'].skew(),2)
skew_2 = round(df['MntLimitedEdition'].skew(),2)

string_1 = ' \u03BC = ' + str(mean_1) + "\n \u03C3 =" + str(sdeviation_1) + "\n median = " + str(median_1)
string_2 = ' \u03BC = ' + str(mean_2) + "\n \u03C3 =" + str(sdeviation_2) + "\n median = " + str(median_2)


props = dict(boxstyle='round', facecolor='white', alpha=0.5)   

axes[0].text(0.6, 0.8, string_1, transform=axes[0].transAxes, fontsize=14,
        verticalalignment='top' ,bbox=props)
axes[0].text(0.6, 0.6, "Skewness = " + str(skew_1), transform=axes[0].transAxes, fontsize=14,
       color= 'blue')

axes[1].text(0.6, 0.8, string_2, transform=axes[1].transAxes, fontsize=14,
        verticalalignment='top' ,bbox=props)
axes[1].text(0.6, 0.6, "Skewness = " + str(skew_2), transform=axes[1].transAxes, fontsize=14,
       color= 'blue')

plt.show()

3. Data transformation¶

In [299]:
df_treated = df.copy()

3.1 Data cleaning¶

3.1.1 Outliers¶

In [300]:
fig, axes = plt.subplots(3,1, figsize = (15,10))
sns.boxplot(ax = axes[0], data = df_treated , x = 'NumDealsPurchases')
sns.boxplot(ax = axes[1], data = df_treated , x = 'NumWebPurchases')
sns.boxplot(ax = axes[2], data = df_treated , x = 'NumWebVisitsMonth')
Out[300]:
<matplotlib.axes._subplots.AxesSubplot at 0x20154425c08>
In [301]:
df_treated  = df_treated .drop(df_treated [df_treated ['NumWebVisitsMonth'] > 40].index)
df_treated  = df_treated .drop(df_treated [df_treated ['NumWebPurchases'] > 50].index)
df_treated  = df_treated .drop(df_treated [df_treated ['NumDealsPurchases'] > 6].index)

3.1.2 Misclassifications¶

In [302]:
#Explore "Education" entries
df_treated ['Education'].value_counts()
Out[302]:
PhD           2566
Graduation    1331
Master         818
2n Cycle        39
GRADUATION      22
PHD             14
MASTER           9
MATSER           4
graduation       3
phd              2
2N CYCLE         1
Name: Education, dtype: int64
In [303]:
df_treated ['Education'] = df_treated ['Education'].str.capitalize() 
df_treated ['Education'].value_counts()
Out[303]:
Phd           2582
Graduation    1356
Master         827
2n cycle        40
Matser           4
Name: Education, dtype: int64
In [304]:
df_treated ['Education'] = df_treated ['Education'].replace('Matser','Master')
df_treated ['Education'].value_counts()
Out[304]:
Phd           2582
Graduation    1356
Master         831
2n cycle        40
Name: Education, dtype: int64
In [305]:
# Exploring 'Marital_Status' entries
df_treated ['Marital_Status'].value_counts()
Out[305]:
Married     2029
Together    1208
Single      1020
Divorced     412
Widow        140
Name: Marital_Status, dtype: int64
In [306]:
df_treated ['Marital_Status'] = df_treated ['Marital_Status'].replace('Together','Married')
df_treated ['Marital_Status'].value_counts()
Out[306]:
Married     3237
Single      1020
Divorced     412
Widow        140
Name: Marital_Status, dtype: int64
In [307]:
# Exploring 'Region' entries
df_treated ['Region'].value_counts()
Out[307]:
Kinsale      1630
Killarney    1615
Cork         1564
Name: Region, dtype: int64
In [308]:
# Exploring 'Country' entries
df_treated ['Country'].value_counts()
Out[308]:
Ireland    4805
UK            2
France        2
Name: Country, dtype: int64
In [309]:
# Exploring 'Kid_home' entries
df_treated ['Kidhome'].value_counts()
Out[309]:
0    2855
1    1849
2     105
Name: Kidhome, dtype: int64
In [310]:
# Exploring 'Teenhome' entries
df_treated ['Teenhome'].value_counts()
Out[310]:
 0    2621
 1    2076
 2     107
-1       5
Name: Teenhome, dtype: int64
In [311]:
#See entries with teenhome = -1
df_treated .loc[df_treated ['Teenhome'] == -1]
Out[311]:
Name Year_Birth Education Marital_Status Income Kidhome Teenhome Region Country Dt_Customer ... NumWebPurchases NumCatalogPurchases NumStorePurchases NumWebVisitsMonth AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Complain
Card_ID
10003214 Mr. Jack Wilkins 1991 Graduation Married 104547.0 0 -1 Cork Ireland 4/18/2018 ... 12 12 10 3 0 1 1 1 0 0
10003351 Mrs. Zoe Gray 1976 Phd Married 109238.0 1 -1 Kinsale Ireland 9/30/2017 ... 10 6 10 6 1 0 1 0 0 0
10003500 Mr. Connor Taylor 1983 Graduation Married 31286.0 1 -1 Killarney Ireland 8/15/2017 ... 9 3 3 9 0 0 0 0 0 0
10003712 Mr. Austin Bell 1967 Phd Single 82877.0 0 -1 Cork Ireland 11/16/2017 ... 10 5 6 3 0 0 0 0 0 0
10003808 Mr. Jacob Mackay 1966 Phd Married 83838.0 0 -1 Cork Ireland 10/11/2017 ... 12 7 10 5 0 0 0 0 0 0

5 rows × 28 columns

In [312]:
df_treated ['Teenhome'] = df_treated ['Teenhome'].replace(-1,df_treated ['Teenhome'].value_counts().idxmax())
df_treated ['Teenhome'].value_counts()
Out[312]:
0    2626
1    2076
2     107
Name: Teenhome, dtype: int64
In [313]:
# Exploring 'Country' entries
df_treated ['Country'].value_counts()
Out[313]:
Ireland    4805
UK            2
France        2
Name: Country, dtype: int64
In [314]:
dropped = (np.shape(df)[0] - np.shape(df_treated)[0])/np.shape(df)[0] *100

print("Total dropped rows:", str(dropped),"%")
Total dropped rows: 3.82 %

3.1.3 Missing values¶

In [315]:
df_treated .isna().sum()
Out[315]:
Name                          1
Year_Birth                    0
Education                     0
Marital_Status                0
Income                       51
Kidhome                       0
Teenhome                      0
Region                        0
Country                       0
Dt_Customer                   0
Recency                       0
MntGroceries                  0
MntStationery                 0
MntHouseKeeping              87
MntWellness_&_Beauty         63
MntElectronics_&_Supplies     0
MntLimitedEdition             0
NumDealsPurchases             0
NumWebPurchases               0
NumCatalogPurchases           0
NumStorePurchases             0
NumWebVisitsMonth             0
AcceptedCmp1                  0
AcceptedCmp2                  0
AcceptedCmp3                  0
AcceptedCmp4                  0
AcceptedCmp5                  0
Complain                      0
dtype: int64
In [316]:
df_treated .loc[df_treated ['MntHouseKeeping'] == 0]
Out[316]:
Name Year_Birth Education Marital_Status Income Kidhome Teenhome Region Country Dt_Customer ... NumWebPurchases NumCatalogPurchases NumStorePurchases NumWebVisitsMonth AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Complain
Card_ID
10005718 Mrs. Sophie Black 1961 Graduation Single 15264.0 0 0 Cork Ireland 12/16/2018 ... 7 2 2 6 0 0 0 0 0 0
10007820 Mr. William Reid 1962 Master Widow 21757.0 1 1 Cork Ireland 5/25/2019 ... 6 2 3 2 0 0 0 0 0 0

2 rows × 28 columns

In [317]:
df_treated .loc[df_treated ['MntWellness_&_Beauty'] == 0]
Out[317]:
Name Year_Birth Education Marital_Status Income Kidhome Teenhome Region Country Dt_Customer ... NumWebPurchases NumCatalogPurchases NumStorePurchases NumWebVisitsMonth AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Complain
Card_ID
10003101 Miss Karen Short 1956 Phd Married 59583.00 1 1 Cork Ireland 2/17/2018 ... 8 2 3 7 0 0 0 0 0 0
10003105 Mrs. Jane Bower 1978 Phd Married 30957.00 1 0 Killarney Ireland 9/15/2018 ... 7 2 2 8 0 0 0 0 0 0
10003106 Mr. Brian Walker 1970 Master Married 52474.00 2 1 Kinsale Ireland 3/20/2019 ... 7 2 2 6 1 0 0 0 0 0
10003116 Mr. Dan Randall 1970 Master Married 49108.00 1 1 Kinsale Ireland 7/13/2018 ... 7 3 3 5 0 0 0 0 0 0
10003125 Mr. Evan Knox 1958 Phd Married 36908.00 0 1 Killarney Ireland 5/4/2018 ... 7 2 3 4 0 0 0 0 0 0
10003130 Mr. Adrian Hill 1996 Graduation Single 25634.00 1 0 Kinsale Ireland 4/17/2018 ... 9 2 3 9 0 0 0 0 0 0
10003159 Mr. Jack Mathis 1977 Master Single 50847.00 1 0 Killarney Ireland 4/23/2018 ... 9 3 2 8 1 0 0 0 0 0
10003168 Miss Dorothy Russell 1970 Phd Married 90240.00 0 1 Cork Ireland 6/12/2018 ... 13 5 8 5 0 0 0 0 0 0
10003169 Mr. Owen Jackson 1991 Phd Single 35844.00 1 0 Kinsale Ireland 1/8/2019 ... 7 2 3 8 1 0 0 0 0 0
10003171 Miss Amy King 1960 Phd Married 55137.00 1 2 Cork Ireland 5/4/2019 ... 8 3 3 4 0 0 0 0 0 0
10003174 Mr. Simon Tucker 1957 Master Married 97204.00 0 0 Killarney Ireland 10/30/2018 ... 13 7 8 4 0 1 1 1 0 0
10003175 Mr. Boris Rees 1951 Phd Married 47267.00 0 1 Kinsale Ireland 3/2/2019 ... 7 2 3 5 0 0 0 0 0 0
10003182 Mr. Stephen Scott 1968 Phd Divorced 10000.00 0 0 Killarney Ireland 11/25/2018 ... 8 2 3 7 0 0 0 0 0 0
10003188 Mr. Jason MacLeod 1976 Master Single 56646.00 1 0 Kinsale Ireland 5/12/2019 ... 7 2 2 6 0 0 0 0 0 0
10003191 Miss Anna Fraser 1964 Master Married 66027.00 1 1 Killarney Ireland 6/5/2018 ... 7 2 2 5 0 0 0 0 0 0
10003211 Mr. Tim Hart 1957 Graduation Single 100096.00 0 1 Killarney Ireland 1/24/2018 ... 11 6 8 3 0 0 0 0 0 0
10003219 Mr. Gavin Dyer 1952 Phd Married 65582.00 0 1 Cork Ireland 1/21/2019 ... 8 2 3 7 0 0 0 0 0 0
10003239 Mr. Oliver Clarkson 1987 Phd Married 43284.00 1 0 Kinsale Ireland 10/11/2018 ... 8 3 3 7 0 0 0 0 0 0
10003241 Mr. Colin Hudson 1978 Phd Married 61649.00 1 1 Kinsale Ireland 1/3/2018 ... 8 3 2 7 0 0 0 0 0 0
10003243 Mr. Joseph Avery 1976 Phd Single 65043.00 1 1 Cork Ireland 10/14/2018 ... 7 2 3 6 0 0 0 0 0 0
10003253 Mr. Max Hart 1972 Phd Married 54582.00 0 1 Killarney Ireland 4/20/2019 ... 11 4 4 7 0 1 0 0 0 0
10003264 Mr. Harry Lee 1960 Phd Single 80250.00 0 2 Cork Ireland 8/19/2017 ... 8 4 9 8 0 0 0 0 0 0
10003270 Mr. Paul Peters 1975 Phd Married 81488.00 1 0 Kinsale Ireland 11/26/2017 ... 8 4 8 8 0 0 0 0 0 0
10003306 Mr. Sean Oliver 1965 Phd Married 39912.00 1 1 Killarney Ireland 1/13/2019 ... 7 2 3 7 0 0 0 0 0 0
10003310 Mr. Warren Ross 1979 Phd Married 67136.00 0 1 Killarney Ireland 8/14/2018 ... 13 3 7 7 0 1 0 0 0 0
10003321 Miss Theresa Carr 1969 Phd Married 69233.00 0 1 Cork Ireland 1/23/2019 ... 9 3 3 6 0 0 0 0 0 0
10003329 Mr. Robert Lawrence 1972 Phd Married 113663.00 2 1 Kinsale Ireland 9/24/2018 ... 17 8 11 5 1 0 0 0 0 0
10003339 Miss Natalie Smith 1969 Phd Single 61476.00 1 1 Cork Ireland 5/27/2018 ... 7 2 2 6 0 0 0 0 0 0
10003345 Mr. Christopher Ince 1959 Phd Married 41124.00 1 1 Kinsale Ireland 5/27/2019 ... 7 3 2 5 1 0 0 0 0 0
10003357 Mr. Cameron Rutherford 1971 Phd Single 80710.00 0 1 Cork Ireland 6/25/2019 ... 11 3 3 7 0 0 0 0 0 0
10003371 Mr. Christian McLean 1969 Phd Single 50933.00 1 1 Kinsale Ireland 12/8/2017 ... 7 2 2 7 0 0 0 0 0 0
10003375 Mrs. Claire Vance 1956 Phd Married 41980.00 0 0 Killarney Ireland 11/3/2017 ... 8 5 4 4 0 0 0 0 0 0
10003403 Mr. Jason Johnston 1968 Phd Married 97804.00 0 0 Cork Ireland 2/2/2019 ... 17 5 5 5 0 0 0 0 0 0
10003419 Mr. Alexander Duncan 1981 Graduation Single 87806.00 0 1 Kinsale Ireland 12/2/2017 ... 9 5 4 7 0 1 1 0 1 0
10003431 Miss Amanda Fraser 1968 Phd Married 56250.00 0 1 Killarney Ireland 3/13/2019 ... 7 3 3 6 0 0 0 0 0 0
10003450 Miss Dorothy Hodges 1976 Graduation Single 59518.00 1 0 Killarney Ireland 6/14/2019 ... 7 2 3 3 0 0 0 0 0 0
10003453 Mrs. Ella Robertson 1981 Phd Married 42569.00 1 0 Cork Ireland 1/9/2018 ... 8 2 3 8 0 0 0 0 0 0
10003478 Mr. Leonard Paige 1970 Phd Married 82915.00 0 2 Kinsale Ireland 3/23/2019 ... 12 4 10 4 0 0 0 0 0 0
10003495 Mr. Joe Morrison 1970 Phd Single 72464.00 1 2 Killarney Ireland 6/9/2019 ... 8 2 4 6 0 0 0 0 0 0
10003503 Mr. Luke Gray 1971 Phd Married 80227.00 0 1 Killarney Ireland 12/11/2018 ... 17 6 6 7 0 1 0 0 0 0
10003507 Mrs. Lily Henderson 1988 Phd Married 110837.00 0 0 Kinsale Ireland 8/19/2017 ... 12 13 8 8 0 1 1 1 1 0
10003529 Mrs. Kylie Piper 1957 Master Married 88081.00 0 1 Killarney Ireland 12/19/2018 ... 11 11 6 3 0 0 0 0 0 0
10003547 Miss Amy Wallace 1954 Phd Married 70471.00 1 1 Cork Ireland 3/25/2019 ... 8 3 4 5 0 0 0 0 0 0
10003555 Mr. Christopher Nolan 1974 Phd Married 47816.00 1 0 Kinsale Ireland 10/30/2018 ... 9 2 4 7 0 0 0 0 0 0
10003559 Mr. Christian Knox 1993 Master Single 19842.00 1 0 Kinsale Ireland 6/7/2019 ... 7 2 3 7 0 0 0 0 0 0
10003579 Mr. Dan Graham 1965 Phd Married 58873.00 1 1 Killarney Ireland 1/20/2019 ... 7 3 2 4 0 0 0 0 0 0
10003580 Mr. Ryan Grant 1965 Master Married 82436.00 0 1 Kinsale Ireland 3/17/2019 ... 9 6 8 3 1 0 0 0 0 0
10003590 Mr. Nathan Kerr 1975 Phd Married 64549.00 1 2 Killarney Ireland 3/27/2019 ... 6 2 3 6 0 0 0 0 0 0
10003604 Mr. Dylan Watson 1953 Phd Married 50795.00 1 1 Cork Ireland 10/16/2017 ... 9 4 2 7 1 0 0 0 0 0
10003628 Mr. Brian Hodges 1978 Master Married 64090.00 1 1 Cork Ireland 10/10/2018 ... 9 2 3 8 0 0 0 0 0 0
10003631 Mr. Gordon Davidson 1979 Phd Married 44729.00 1 1 Killarney Ireland 1/17/2018 ... 8 2 4 7 0 0 0 0 0 0
10003634 Mrs. Theresa Lambert 1982 Phd Single 80917.00 0 2 Kinsale Ireland 4/7/2018 ... 13 9 12 5 0 0 0 0 0 0
10003640 Mr. Liam Tucker 1962 Master Single 50659.00 1 1 Cork Ireland 8/26/2018 ... 7 3 3 4 0 0 0 0 0 0
10003658 Miss Vanessa Hughes 1955 Phd Married 134689.00 0 0 Cork Ireland 9/21/2018 ... 10 10 5 1 0 0 1 1 0 0
10003661 Mrs. Diane Gibson 1978 Master Married 59066.00 1 1 Killarney Ireland 6/24/2018 ... 7 2 3 6 0 0 0 0 0 0
10003667 Mr. Sean Walsh 1977 Phd Married 33795.00 1 1 Kinsale Ireland 1/14/2018 ... 7 2 3 7 0 0 0 0 0 0
10003674 Mr. Max Ogden 1978 Phd Married 159607.05 1 1 Killarney Ireland 12/25/2018 ... 28 0 0 1 0 0 0 0 0 0
10003718 Mr. Piers Vance 1991 Phd Married 47569.00 1 0 Killarney Ireland 11/11/2018 ... 7 2 3 6 0 0 0 0 0 0
10003722 Mr. Andrew Rees 1975 Phd Married 53792.00 0 1 Killarney Ireland 10/14/2018 ... 10 3 5 7 0 0 0 0 0 0
10003726 Mr. Nathan Payne 1976 Master Married 26717.00 1 0 Killarney Ireland 2/1/2018 ... 7 2 2 8 0 0 0 0 0 0
10003732 Mr. Sam Oliver 1964 Phd Married 151364.85 1 1 Cork Ireland 2/26/2018 ... 1 0 1 1 0 0 0 0 0 0
10003782 Mr. Luke Ferguson 1977 Phd Single 57480.00 1 0 Cork Ireland 5/25/2019 ... 8 2 3 6 0 0 0 0 0 0
10003794 Miss Karen North 1990 Master Married 20095.00 1 0 Kinsale Ireland 5/11/2018 ... 9 3 3 5 0 0 0 0 0 0
10003796 Mr. Owen Smith 1967 Phd Married 58792.00 1 1 Cork Ireland 12/1/2018 ... 8 2 3 6 0 0 0 0 0 0
10003797 Mr. Gavin Greene 1986 Phd Single 38196.00 1 0 Cork Ireland 8/22/2018 ... 8 4 2 7 1 0 0 0 0 0
10003802 Mr. James Allan 1977 Phd Single 68517.00 1 1 Kinsale Ireland 8/10/2018 ... 13 3 6 6 0 0 0 0 0 0
10003807 Mr. Victor Oliver 1955 Phd Widow 77289.00 0 1 Kinsale Ireland 5/12/2019 ... 8 2 4 5 0 0 0 0 0 0
10003829 Mr. Jake Reid 1953 Phd Married 65706.00 0 1 Killarney Ireland 9/15/2018 ... 9 4 7 4 0 0 0 0 0 0
10003838 Mrs. Gabrielle Powell 1966 Phd Married 63067.00 0 1 Cork Ireland 8/7/2018 ... 10 3 5 5 0 0 0 0 0 0
10003844 Mr. Benjamin Newman 1959 Phd Married 67547.00 0 1 Cork Ireland 1/28/2019 ... 7 2 3 5 0 0 0 0 0 0
10003845 Mr. Keith Welch 1958 Graduation Married 47221.00 1 2 Cork Ireland 3/4/2018 ... 8 3 3 8 0 0 0 0 0 0
10003858 Mr. Adrian McGrath 1986 Graduation Married 37988.00 1 0 Cork Ireland 3/19/2019 ... 8 3 2 6 0 0 0 0 0 0
10003867 Mr. Gavin Wright 1971 Phd Married 69058.00 0 1 Kinsale Ireland 11/21/2017 ... 12 4 5 7 0 0 0 0 0 0
10003875 Mr. Stephen Hudson 1983 Master Single 59669.00 0 1 Killarney Ireland 12/2/2018 ... 7 2 2 5 0 0 0 0 0 0
10003886 Mrs. Elizabeth Sharp 1971 Graduation Single 38013.00 1 1 Kinsale Ireland 4/14/2018 ... 8 2 4 5 0 0 0 0 0 0
10003887 Mr. Isaac Newman 1978 Phd Married 45639.00 1 1 Kinsale Ireland 12/27/2017 ... 7 2 2 7 0 0 0 0 0 0
10003897 Miss Grace Lambert 1976 Graduation Single NaN 1 0 Killarney Ireland 5/7/2019 ... 7 2 3 8 0 0 0 0 0 0
10003928 Mr. Steven McDonald 1973 Phd Single 91928.00 1 0 Kinsale Ireland 11/13/2018 ... 14 6 6 4 0 1 1 0 0 0
10003959 Mr. Nicholas North 1965 Phd Married 98748.00 0 1 Kinsale Ireland 2/22/2018 ... 17 6 7 6 1 0 1 1 0 0
10003979 Mr. Owen Allan 1977 Phd Married 74022.00 2 1 Kinsale Ireland 9/28/2017 ... 17 3 6 9 0 0 0 0 0 0
10004001 Mr. Max Reid 1976 Phd Married 53655.00 1 0 Kinsale Ireland 3/10/2019 ... 8 2 3 5 0 0 0 0 0 0
10004008 Mr. Christian White 1973 Phd Married 44679.00 1 0 Kinsale Ireland 2/28/2018 ... 7 2 3 8 0 0 0 0 0 0
10004023 Miss Megan Forsyth 1960 Graduation Married 88386.00 0 1 Cork Ireland 5/14/2019 ... 16 4 8 5 0 1 0 0 1 0
10004053 Miss Chloe Mitchell 1974 Phd Single 7151.90 1 1 Kinsale Ireland 5/28/2019 ... 1 0 0 16 0 0 0 0 0 1
10004067 Mr. Joe Graham 1965 Phd Single 62790.00 1 1 Kinsale Ireland 3/13/2019 ... 7 2 3 4 0 0 0 0 0 0
10004076 Mrs. Virginia Hardacre 1956 Phd Married 77811.00 0 1 Cork France 7/4/2018 ... 17 9 4 8 1 0 0 0 0 0
10004082 Mr. Piers Powell 1983 Phd Married 66241.00 0 1 Cork Ireland 11/5/2018 ... 13 3 7 7 0 0 0 0 0 0
10004095 Mr. Dominic Rees 1978 Graduation Single 20492.00 1 0 Killarney Ireland 3/1/2019 ... 8 2 3 7 0 0 0 0 0 0
10004112 Mr. Nicholas Gill 1973 Phd Married 30763.00 2 0 Killarney Ireland 1/17/2018 ... 8 2 3 9 0 0 0 0 0 0
10004115 Mr. Jacob Robertson 1977 Phd Married 44410.00 1 0 Killarney Ireland 1/13/2019 ... 7 2 2 8 0 0 0 0 0 0
10004119 Miss Leah Watson 1972 Phd Married 36513.00 1 0 Killarney Ireland 1/24/2019 ... 7 2 2 8 0 0 0 0 0 0
10004120 Mr. Brandon Burgess 1970 Phd Married 38026.00 2 1 Cork Ireland 6/15/2018 ... 7 3 2 6 0 0 0 0 0 0
10004132 Mrs. Joan McDonald 1973 Phd Married 42897.00 0 1 Killarney Ireland 8/2/2018 ... 7 2 3 4 0 0 0 0 0 0
10004150 Mr. Alexander Kelly 1974 Phd Married 37185.00 1 0 Cork Ireland 7/6/2018 ... 7 3 2 6 0 0 0 0 0 0
10004176 Mr. Anthony Bower 1967 Phd Married 60468.00 1 1 Kinsale Ireland 9/7/2018 ... 8 3 2 5 1 0 0 0 0 0
10004199 Mr. Colin Black 1981 Phd Married 60247.00 0 2 Kinsale Ireland 8/6/2018 ... 7 2 2 6 0 0 0 0 0 0
10004214 Miss Abigail Jones 1974 Phd Married 62599.00 0 1 Killarney Ireland 4/10/2019 ... 7 2 4 4 0 0 0 0 0 0
10004226 Mr. Frank Rampling 1993 Graduation Married 49299.00 1 0 Killarney Ireland 12/29/2018 ... 7 2 3 7 0 0 0 0 0 0
10004254 Mrs. Joan Wilkins 1983 Phd Divorced 37920.00 1 0 Cork Ireland 7/8/2018 ... 8 2 3 8 0 0 0 0 0 0
10004263 Mr. Jason Ogden 1959 Master Widow 55873.00 1 1 Cork Ireland 9/28/2017 ... 7 2 3 7 0 0 0 0 0 0
10004267 Miss Lisa Martin 1990 Graduation Married 47003.00 1 0 Killarney Ireland 1/10/2019 ... 7 2 2 7 0 0 0 0 0 0
10004281 Mrs. Deirdre Peake 1968 Phd Single 49839.00 0 1 Killarney Ireland 8/11/2017 ... 12 4 9 7 0 0 0 0 0 0
10004285 Mr. Dylan Churchill 1975 Phd Single 56537.00 1 0 Kinsale Ireland 12/12/2018 ... 7 2 3 8 0 0 0 0 0 0
10004297 Mr. Paul Rutherford 1969 Phd Married 58030.00 1 1 Killarney Ireland 4/13/2018 ... 10 2 4 8 0 0 0 0 0 0
10004298 Mr. Julian Clark 1974 Phd Married 81563.00 0 1 Killarney Ireland 11/4/2018 ... 11 4 8 8 1 0 0 0 0 1
10004328 Mr. Michael Taylor 1979 Master Married 30589.00 1 0 Cork Ireland 9/8/2017 ... 7 2 2 8 0 0 0 0 0 0
10004341 Mr. Nathan MacLeod 1992 Phd Single 81286.00 0 0 Cork Ireland 3/1/2019 ... 16 4 11 6 0 0 0 0 0 0
10004361 Mr. Gordon Morrison 1991 Master Married 30617.00 1 0 Cork Ireland 8/20/2017 ... 7 2 2 9 0 0 0 0 0 0
10004368 Mr. Christopher MacLeod 1986 Phd Married 34382.00 1 0 Cork Ireland 4/14/2018 ... 7 2 3 7 0 0 0 0 0 0
10004422 Mr. Joseph Bower 1986 Phd Married 23906.00 1 0 Kinsale Ireland 3/29/2019 ... 9 2 3 8 0 0 0 0 0 0
10004430 Mrs. Penelope Ince 1978 Phd Married 52506.00 1 1 Cork Ireland 4/9/2018 ... 6 3 2 6 0 0 0 0 0 0
10004434 Mrs. Amy Hill 1955 Phd Single 60351.00 0 1 Kinsale Ireland 6/24/2018 ... 10 3 4 6 0 0 0 0 0 0
10004450 Mr. Trevor Quinn 1990 Phd Married 45548.00 1 0 Kinsale Ireland 10/31/2018 ... 8 3 3 6 0 0 0 0 0 0
10004468 Mr. Joseph Hemmings 1989 Phd Married NaN 1 0 Killarney Ireland 5/25/2018 ... 9 2 3 8 0 0 0 0 0 0
10004469 Mr. Evan Arnold 1983 Phd Married 67713.00 1 1 Cork Ireland 9/11/2018 ... 8 3 3 6 0 0 0 0 0 0
10004484 Mr. Carl Brown 1978 Graduation Single 49798.00 0 0 Kinsale Ireland 2/19/2018 ... 6 2 3 4 0 0 0 0 0 0
10004503 Miss Michelle Hardacre 1977 Phd Married 58325.00 1 1 Cork Ireland 6/10/2018 ... 11 3 5 7 0 0 0 0 0 0
10004526 Miss Heather Abraham 1953 Phd Married 47120.00 1 1 Kinsale Ireland 6/30/2019 ... 8 2 3 5 0 0 0 0 0 0
10004554 Mrs. Caroline Lambert 1976 Phd Single 32851.00 1 1 Killarney Ireland 1/29/2019 ... 8 2 4 6 0 0 0 0 0 0
10004587 Miss Diana Hart 1979 Phd Married 45910.00 1 0 Cork Ireland 6/29/2019 ... 8 3 3 7 0 0 0 0 0 0
10004593 Mr. William Turner 1981 Phd Married 78627.00 0 1 Kinsale Ireland 2/13/2019 ... 14 5 3 7 1 0 0 0 0 0
10004595 Mr. Christopher Lee 1997 Graduation Single 10886.00 1 0 Killarney Ireland 3/20/2018 ... 7 3 2 7 0 0 0 0 0 0
10004601 Miss Jane Ferguson 1985 Graduation Married 77635.00 0 1 Killarney Ireland 8/15/2017 ... 12 4 12 9 0 0 0 0 0 0
10004602 Mr. Warren Ferguson 1976 Phd Married 41971.00 0 1 Cork Ireland 12/15/2018 ... 7 2 2 7 0 0 0 0 0 0
10004610 Mr. Lucas Jackson 1992 Graduation Married 24064.00 1 0 Killarney Ireland 4/4/2018 ... 8 2 3 8 0 0 0 0 0 0
10004612 Mr. Anthony Anderson 1973 Graduation Married 78280.00 0 1 Kinsale Ireland 4/1/2018 ... 17 7 9 6 0 0 0 0 0 0
10004625 Miss Andrea Murray 1972 Phd Married 42167.00 1 0 Cork Ireland 5/21/2018 ... 9 2 4 5 0 0 0 0 0 0
10004628 Mr. Joe Lawrence 1984 Graduation Married 58610.00 0 1 Kinsale Ireland 2/19/2019 ... 7 2 3 7 0 0 0 0 0 0
10004645 Mr. Isaac Sharp 1980 Phd Divorced 44677.00 1 1 Kinsale Ireland 8/14/2018 ... 9 3 3 8 0 0 0 0 0 0
10004662 Mr. Boris Forsyth 1958 Phd Married 79855.00 0 1 Killarney Ireland 11/3/2018 ... 8 3 3 3 0 0 0 0 0 0
10004668 Mrs. Carolyn White 1977 Phd Married 65992.00 1 0 Cork Ireland 4/26/2018 ... 12 3 5 7 0 0 0 0 0 0
10004680 Mr. Dylan Paterson 1960 Master Married 70872.00 0 1 Cork Ireland 6/10/2019 ... 9 3 4 4 0 0 0 0 0 0
10004712 Mr. Piers Blake 1958 Graduation Widow 49658.00 1 1 Cork Ireland 4/28/2018 ... 7 3 2 7 1 0 0 0 0 0
10004724 Mrs. Heather Underwood 1987 Phd Married 29320.00 1 0 Cork Ireland 4/8/2018 ... 7 2 2 7 0 0 0 0 0 0
10004733 Mr. Christopher Knox 1966 Phd Divorced 52936.00 0 1 Killarney Ireland 8/14/2018 ... 10 3 4 7 0 0 0 0 0 0
10004753 Mrs. Jane Johnston 1974 Phd Married 58453.00 0 1 Killarney Ireland 6/19/2019 ... 8 2 3 6 0 0 0 0 0 0
10004774 Mr. Oliver Forsyth 1966 Phd Single 87253.00 0 1 Killarney Ireland 9/4/2018 ... 8 10 4 7 0 0 0 0 0 0
10004779 Mr. Max McGrath 1958 Master Single 59581.00 0 1 Kinsale Ireland 9/9/2018 ... 8 2 4 5 0 0 0 0 0 0
10004799 Mr. Steven Johnston 1976 Phd Single 28289.00 1 0 Kinsale Ireland 1/8/2018 ... 10 4 2 9 1 0 0 0 0 0
10004802 Mr. Jason Dickens 1961 Phd Married 90048.00 0 1 Cork Ireland 12/15/2018 ... 13 5 12 4 0 0 0 0 0 0
10004812 Mr. John Sharp 1975 Phd Married 65855.00 1 0 Kinsale Ireland 11/23/2018 ... 6 2 3 5 0 0 0 0 0 0
10004819 Miss Julia James 1953 Phd Married 69556.00 0 1 Kinsale Ireland 10/19/2017 ... 13 5 5 8 0 1 0 0 0 0
10004834 Mrs. Molly Bond 1989 Graduation Single 20688.00 1 0 Cork Ireland 10/26/2017 ... 7 2 2 7 1 0 0 0 0 0
10004873 Mr. Thomas Simpson 1964 Master Single 57377.00 1 1 Cork Ireland 10/3/2018 ... 7 4 2 4 1 0 0 0 0 0
10004887 Mr. John Coleman 1975 Phd Married 58655.00 1 0 Killarney Ireland 8/22/2018 ... 9 3 4 4 0 0 0 0 0 0
10004902 Mrs. Anne Harris 1972 Phd Married 49882.00 1 0 Kinsale Ireland 12/6/2017 ... 6 2 3 7 0 0 0 0 0 0
10004913 Miss Molly Allan 1957 Phd Single 58665.00 1 1 Kinsale Ireland 12/14/2018 ... 10 3 4 7 0 0 0 0 0 0
10004925 Mr. Harry Piper 1969 Phd Married 82661.00 0 1 Killarney Ireland 2/1/2018 ... 12 6 8 5 0 1 0 1 1 0
10004944 Mr. Benjamin Davies 1967 Phd Married 36317.00 1 1 Killarney Ireland 4/21/2018 ... 9 2 3 9 0 0 0 0 0 0
10004948 Mr. Steven Peake 1974 Phd Married 33028.00 1 0 Kinsale Ireland 3/25/2019 ... 7 2 3 4 0 0 0 0 0 0
10004954 Mr. Victor Hill 1985 Master Single 51697.00 1 0 Killarney Ireland 2/13/2019 ... 7 2 2 7 0 0 0 0 0 0
10004955 Mr. Sebastian Metcalfe 1969 Phd Married 72335.00 2 1 Cork Ireland 8/14/2018 ... 7 2 3 5 0 0 0 0 0 0
10004965 Mrs. Joanne Randall 1987 Phd Married 46367.00 1 0 Cork Ireland 11/13/2018 ... 7 2 2 6 0 0 0 0 0 0
10004979 Miss Chloe Dowd 1974 Phd Married 40635.00 1 0 Cork Ireland 1/23/2019 ... 7 3 3 6 0 0 0 0 0 0
10004996 Mr. Gordon Edmunds 1988 Phd Married 44615.00 1 0 Cork Ireland 8/8/2018 ... 8 2 3 7 0 0 0 0 0 0
10005012 Mr. Joshua Mackenzie 1965 Phd Divorced 69167.00 0 1 Cork Ireland 2/25/2018 ... 14 4 8 8 0 0 0 0 0 0
10005025 Mr. Liam Morrison 1973 Phd Married 78282.00 0 1 Cork Ireland 5/12/2019 ... 7 2 3 4 0 0 0 0 0 0
10005037 Mr. Dominic Parsons 1968 Phd Married 62342.00 0 1 Kinsale Ireland 11/17/2017 ... 10 6 7 9 0 0 0 0 0 0
10005042 Miss Alexandra Mackenzie 1975 Phd Married 63588.00 0 1 Killarney Ireland 7/6/2018 ... 7 2 2 6 0 0 0 0 0 0
10005065 Mrs. Heather Welch 1977 Graduation Married 62900.00 0 1 Killarney Ireland 5/22/2019 ... 7 2 3 3 0 0 0 0 0 0
10005083 Mr. Lucas Alsop 1972 Phd Married 46636.00 1 0 Kinsale Ireland 10/29/2017 ... 7 3 2 8 1 0 0 0 0 0
10005113 Mrs. Rose Graham 1985 Phd Married 28470.00 1 0 Killarney Ireland 1/1/2018 ... 8 2 3 7 1 0 0 0 0 0
10005118 Miss Sally Metcalfe 1976 Phd Married 40108.00 0 1 Cork Ireland 2/22/2018 ... 7 2 3 7 0 0 0 0 0 0
10005122 Mr. Jacob Thomson 1983 Phd Married 117462.00 1 0 Cork Ireland 8/19/2017 ... 12 7 8 9 0 1 1 1 0 0
10005129 Mr. Dan Hunter 1960 Phd Divorced 72972.00 0 1 Cork Ireland 12/11/2017 ... 13 7 10 7 0 0 0 0 0 0
10005166 Mrs. Audrey Walsh 1975 Phd Married 67976.00 0 0 Kinsale Ireland 2/28/2019 ... 7 2 4 3 0 0 0 0 0 0
10005175 Mr. Ryan Randall 1982 Phd Married 34006.00 1 0 Killarney Ireland 7/24/2018 ... 7 2 2 8 1 0 0 0 0 0
10005182 Miss Jessica Gray 1974 Graduation Married 60388.00 0 1 Kinsale Ireland 6/8/2019 ... 7 2 3 6 0 0 0 0 0 0
10005183 Mrs. Emily Lyman 1968 Phd Single 59409.00 1 1 Kinsale Ireland 1/1/2018 ... 8 2 3 8 1 0 0 0 0 0
10005184 Mr. Dylan MacDonald 1974 Graduation Married 46625.00 1 1 Killarney Ireland 4/5/2018 ... 7 2 2 9 0 0 0 0 0 0
10005208 Mr. Leonard King 1986 Phd Single 40613.00 1 0 Killarney Ireland 1/16/2018 ... 8 2 3 8 0 0 0 0 0 0
10005229 Mr. Liam Abraham 1968 Graduation Married 21900.00 1 1 Cork Ireland 6/9/2018 ... 7 2 2 9 1 0 0 0 0 0
10005239 Mr. Robert Metcalfe 1977 Phd Divorced 45621.00 1 0 Killarney Ireland 4/16/2019 ... 7 2 2 7 0 0 0 0 0 0
10005241 Miss Claire McDonald 1976 Phd Married 38662.00 1 0 Cork Ireland 11/1/2018 ... 7 2 2 8 0 0 0 0 0 0
10005253 Mr. Stewart Hardacre 1978 Graduation Married 52171.00 1 1 Killarney Ireland 5/21/2019 ... 7 3 3 4 0 0 0 0 0 0
10005254 Mrs. Caroline James 1992 Graduation Married 36028.00 1 0 Cork Ireland 9/26/2018 ... 8 2 3 6 0 0 0 0 0 0
10005260 Mrs. Audrey Glover 1990 Phd Single 44244.00 1 0 Cork Ireland 4/7/2019 ... 9 2 3 5 0 0 0 0 0 0
10005267 Miss Madeleine Paterson 1949 Phd Widow 79980.00 0 0 Cork Ireland 4/2/2019 ... 11 3 8 4 0 0 0 0 0 0
10005268 Mr. Julian Brown 1957 Phd Single 41049.00 0 1 Kinsale Ireland 11/3/2017 ... 6 2 3 5 0 0 0 0 0 0
10005269 Mr. David Thomson 1959 Phd Widow NaN 1 1 Cork Ireland 3/24/2019 ... 8 2 3 6 0 0 0 0 0 0
10005275 Mr. Anthony Jones 1956 Graduation Married 85330.00 0 0 Killarney Ireland 12/21/2018 ... 13 8 11 4 0 0 0 0 0 0
10005278 Mr. Stewart Jones 1967 Graduation Married 87513.00 0 0 Killarney Ireland 2/24/2019 ... 8 8 4 1 0 0 0 0 0 0
10005279 Mr. Stephen Jones 1984 Phd Married 24507.00 1 0 Cork Ireland 6/10/2018 ... 8 3 2 8 0 0 0 0 0 1
10005287 Mr. Oliver Walsh 1960 Phd Divorced 75599.00 0 1 Cork Ireland 1/18/2019 ... 13 3 6 6 0 1 0 0 0 0
10005314 Mrs. Jane Pullman 1966 Phd Married 145834.35 0 1 Kinsale Ireland 10/9/2017 ... 1 0 1 1 0 0 0 0 0 0
10005324 Mr. Thomas Bailey 1961 Master Married 59380.00 1 1 Killarney Ireland 8/15/2018 ... 8 3 4 6 0 0 0 0 0 0
10005351 Mr. Edward Pullman 1977 Phd Married 63827.00 1 1 Kinsale Ireland 4/12/2018 ... 8 2 3 8 0 0 0 0 0 0
10005361 Mr. William Blake 1966 Phd Divorced 54717.00 0 2 Kinsale Ireland 10/22/2018 ... 9 2 3 8 0 0 0 0 0 0
10005363 Miss Faith Allan 1983 Graduation Single 26152.00 1 0 Kinsale Ireland 12/22/2018 ... 7 2 3 7 0 0 0 0 0 0
10005370 Mr. Charles Sutherland 1961 Graduation Married 54256.00 1 1 Kinsale Ireland 9/4/2018 ... 9 2 4 7 0 0 0 0 0 0
10005415 Mr. Eric Ferguson 1954 Phd Married 73912.00 1 1 Cork Ireland 4/17/2019 ... 12 4 5 6 0 0 0 0 0 0
10005422 Miss Madeleine Fisher 1959 Phd Single 41078.00 1 1 Cork Ireland 11/23/2017 ... 7 2 3 8 0 0 0 0 0 0
10005431 Mr. Adrian Walker 1953 Phd Married 37522.00 1 1 Kinsale Ireland 9/8/2017 ... 7 2 3 7 0 0 0 0 0 0
10005437 Mr. Steven Fraser 1980 Phd Married 72090.00 0 1 Killarney Ireland 3/17/2019 ... 7 2 3 3 0 0 0 0 0 0
10005464 Mr. Christian Stewart 1987 Graduation Married 63845.00 1 0 Kinsale Ireland 5/1/2018 ... 17 8 3 9 1 0 0 0 0 0
10005471 Mr. Leonard Russell 1980 Phd Married 39745.00 1 0 Kinsale Ireland 6/22/2019 ... 8 2 3 4 0 0 0 0 0 0
10005486 Mr. Alexander Chapman 1985 Graduation Married 33506.00 1 0 Killarney Ireland 10/3/2018 ... 8 2 3 7 0 0 0 0 0 0
10005487 Mr. Piers Parr 1980 Phd Single 69430.00 1 1 Cork Ireland 1/25/2018 ... 10 3 4 7 0 0 0 0 0 0
10005502 Miss Michelle Coleman 1969 Graduation Married 57825.00 0 1 Kinsale Ireland 2/9/2018 ... 8 2 3 8 0 0 0 0 0 0
10005510 Mrs. Pippa King 1976 Phd Single 93993.00 0 1 Killarney Ireland 11/29/2017 ... 10 5 10 8 0 0 0 0 0 0
10005531 Mr. James Alsop 1960 Phd Married 70664.00 0 1 Killarney Ireland 8/21/2017 ... 13 5 8 5 0 0 0 0 0 0
10005545 Mr. Simon Lewis 1969 Phd Married 70785.00 1 1 Kinsale Ireland 2/13/2018 ... 12 4 4 7 0 0 0 0 0 0
10005565 Mr. Liam Henderson 1969 Phd Married 79458.00 0 1 Killarney Ireland 10/21/2017 ... 14 3 7 7 0 1 0 0 0 0
10005576 Mrs. Mary Sutherland 1966 Phd Married 64761.00 1 1 Kinsale Ireland 2/4/2019 ... 8 3 3 7 0 0 0 0 0 0
10005577 Mr. Victor Johnston 1976 Phd Divorced 30072.00 1 1 Cork Ireland 11/4/2017 ... 8 2 4 5 0 0 0 0 0 0
10005587 Mrs. Sophie Turner 1982 Master Married 41884.00 1 0 Killarney Ireland 2/8/2019 ... 7 2 3 8 0 0 0 0 0 0
10005597 Mr. Owen Hemmings 1980 Master Divorced 40639.00 1 0 Killarney Ireland 4/3/2018 ... 7 2 3 8 0 0 0 0 0 0
10005606 Mr. David Mackenzie 1980 Phd Married 60194.00 1 1 Kinsale Ireland 7/16/2018 ... 7 3 2 4 0 0 0 0 0 0
10005673 Mr. Stephen Kerr 1983 Phd Single 41846.00 1 0 Killarney Ireland 12/6/2017 ... 7 2 2 8 1 0 0 0 0 0
10005677 Mr. Adrian McDonald 1957 Phd Married 48707.00 1 1 Kinsale Ireland 6/30/2019 ... 8 2 3 5 0 0 0 0 0 0
10005683 Mr. Owen Roberts 1982 Phd Single 65749.00 2 0 Cork Ireland 10/21/2018 ... 8 2 2 9 0 0 0 0 0 0
10005699 Miss Kimberly May 1965 Graduation Single 54727.00 1 1 Kinsale Ireland 2/3/2019 ... 7 2 2 7 0 0 0 0 0 0
10005714 Mr. Justin Bower 1976 Phd Single 48050.00 1 0 Cork Ireland 6/1/2018 ... 9 2 3 6 0 0 0 0 0 0
10005726 Mr. Paul Grant 1984 Phd Married 40975.00 1 0 Killarney Ireland 1/6/2018 ... 10 3 4 8 0 0 0 0 0 0
10005731 Mr. Adrian Payne 1988 Phd Single 42317.00 1 0 Killarney Ireland 11/24/2018 ... 8 3 4 5 0 0 0 0 0 0
10005747 Mr. Blake Churchill 1979 Phd Married 51628.00 1 1 Cork Ireland 12/30/2017 ... 7 2 2 8 0 0 0 0 0 0
10005758 Mr. Liam Murray 1981 Phd Married 74605.00 0 1 Killarney Ireland 3/4/2019 ... 14 4 6 7 0 0 0 0 0 0
10005782 Mr. Joshua Glover 1959 Phd Married 29530.00 0 0 Cork Ireland 4/14/2019 ... 7 2 3 7 0 0 0 0 0 0
10005783 Miss Rebecca Simpson 1969 Phd Divorced 79761.00 0 1 Killarney Ireland 4/13/2018 ... 17 4 7 8 0 0 0 0 0 0
10005787 Mr. Edward Hunter 1964 Master Married 82748.00 0 2 Cork Ireland 9/1/2018 ... 16 6 7 6 0 1 0 0 0 0
10005794 Mrs. Emily Gill 1992 Phd Married 66239.00 0 0 Killarney Ireland 3/5/2018 ... 12 8 10 6 0 0 0 0 0 0
10005835 Miss Felicity Slater 1975 Phd Single 34452.00 1 0 Cork Ireland 3/14/2019 ... 7 2 2 8 0 0 0 0 0 0
10005837 Mr. Frank Slater 1975 Phd Single 36152.00 1 1 Killarney Ireland 10/22/2018 ... 8 3 4 4 0 0 0 0 0 0
10005857 Mrs. Dorothy Reid 1988 Graduation Married NaN 1 0 Killarney Ireland 1/6/2019 ... 7 2 3 8 0 0 0 0 0 0
10005858 Mrs. Rachel Knox 1972 Phd Married 79357.00 0 1 Cork Ireland 12/20/2018 ... 11 4 4 7 1 0 0 0 0 0
10005860 Mr. Alexander Gibson 1960 Phd Single 73564.00 1 1 Kinsale Ireland 12/9/2018 ... 8 2 3 5 0 0 0 0 0 0
10005864 Mr. Jake Underwood 1979 Phd Married 57683.00 0 1 Cork Ireland 11/22/2017 ... 11 4 6 5 0 0 0 0 0 0
10005899 Mrs. Donna Underwood 1993 Master Single 43716.00 1 0 Killarney Ireland 1/4/2019 ... 7 2 3 7 0 0 0 0 0 0
10005915 Mr. Warren Bond 1968 Phd Divorced 96765.00 0 0 Kinsale Ireland 1/2/2019 ... 8 6 6 1 0 0 0 0 0 0
10005921 Miss Megan Welch 1982 Master Married 35262.00 1 0 Killarney Ireland 12/31/2017 ... 7 2 3 8 0 0 0 0 0 0
10005944 Mr. Dominic Ellison 1971 Phd Married 56885.00 0 1 Killarney Ireland 3/19/2019 ... 7 2 3 6 0 0 0 0 0 0
10005945 Mr. Dylan Wright 1983 Phd Divorced 97650.00 0 0 Cork Ireland 2/13/2019 ... 8 5 4 5 0 1 1 0 0 0
10005947 Mr. Harry James 1989 Phd Single 35776.00 2 0 Cork Ireland 4/8/2018 ... 7 2 2 8 0 0 0 0 0 0
10005972 Mr. Jacob Metcalfe 1964 Phd Married 92146.00 0 1 Kinsale Ireland 9/13/2017 ... 16 11 12 7 0 0 0 0 0 0
10006022 Miss Ella Buckland 1980 Master Divorced 59585.00 1 1 Cork Ireland 1/11/2019 ... 7 3 2 7 1 0 0 0 0 0
10006037 Mr. Dominic Edmunds 1976 Phd Married 44786.00 1 1 Cork Ireland 11/4/2018 ... 7 2 2 7 0 0 0 0 0 0
10006043 Miss Virginia Hodges 1964 Phd Married 70234.00 0 1 Kinsale Ireland 7/17/2018 ... 10 5 5 9 0 0 0 0 0 0
10006062 Mrs. Donna Gill 1983 Phd Married 51535.00 1 0 Killarney Ireland 10/23/2017 ... 15 3 7 9 0 0 0 0 0 0
10006078 Miss Maria Cornish 1947 Phd Divorced 89181.00 0 0 Killarney Ireland 6/27/2018 ... 12 11 11 4 0 0 0 0 0 0
10006082 Miss Lisa Underwood 1987 Master Married 28095.00 0 0 Killarney Ireland 11/20/2018 ... 7 2 2 5 0 0 0 0 0 0
10006085 Mr. Steven Nash 1953 Phd Married 51175.00 1 1 Killarney Ireland 1/4/2019 ... 8 3 3 6 0 0 0 0 0 0
10006096 Mr. Lucas Springer 1978 Phd Married 97807.00 0 0 Kinsale Ireland 2/7/2019 ... 11 13 5 2 1 0 1 1 0 0
10006112 Mr. Oliver Peters 1974 Phd Divorced 83532.00 0 1 Kinsale Ireland 6/16/2018 ... 13 6 11 5 0 0 0 0 0 0
10006117 Mrs. Emma Fisher 1980 Phd Married 70170.00 0 1 Kinsale Ireland 6/18/2018 ... 12 4 10 5 0 1 0 0 0 0
10006135 Mrs. Bella Vance 1954 Phd Widow 74388.00 0 1 Cork Ireland 3/4/2018 ... 13 3 5 7 0 0 0 0 0 0
10006145 Mr. Connor McLean 1980 Phd Married 40428.00 1 1 Cork Ireland 1/4/2019 ... 7 2 2 7 0 0 0 0 0 0
10006168 Mr. Brian Blake 1974 Phd Married 58631.00 1 0 Cork Ireland 12/13/2017 ... 12 6 6 7 0 0 0 0 0 0
10006180 Mr. Stewart Nash 1983 Graduation Divorced 58011.00 0 1 Kinsale Ireland 6/28/2019 ... 7 3 3 3 0 0 0 0 0 0
10006196 Mr. Evan Davidson 1984 Phd Married 41207.00 1 0 Cork Ireland 2/18/2019 ... 8 2 3 5 0 0 0 0 0 0
10006211 Mr. Jason Hardacre 1972 Phd Married 44301.00 1 1 Cork Ireland 1/2/2019 ... 7 2 2 7 0 0 0 0 0 0
10006268 Mr. Liam Mills 1970 Graduation Married 41859.00 1 2 Cork Ireland 3/24/2018 ... 8 3 3 6 0 0 0 0 0 0
10006320 Mr. Oliver Skinner 1965 Phd Divorced 86592.00 0 0 Killarney Ireland 1/17/2018 ... 10 6 8 2 0 0 0 0 0 0
10006323 Mr. William Nolan 1977 Graduation Married 51617.00 2 0 Kinsale Ireland 11/7/2018 ... 7 3 2 7 0 0 0 0 0 0
10006362 Mrs. Pippa Lewis 1959 Phd Married 62936.00 0 1 Killarney Ireland 4/27/2019 ... 12 4 5 7 0 0 0 0 0 0
10006366 Mr. Isaac Gibson 1981 Phd Married 34223.00 1 0 Killarney Ireland 11/5/2017 ... 7 2 3 9 0 0 0 0 0 0
10006370 Miss Leah Cameron 1974 Phd Widow 50153.00 1 1 Kinsale Ireland 8/9/2018 ... 7 2 3 7 1 0 0 0 0 0
10006392 Mr. James Turner 1957 Phd Single 65981.00 1 1 Cork Ireland 12/27/2017 ... 8 2 4 7 0 0 0 0 0 0
10006397 Mr. Alexander Davies 1977 Phd Married 63309.00 1 1 Killarney Ireland 1/24/2019 ... 8 2 3 5 0 0 0 0 0 0
10006415 Mrs. Bernadette Young 1977 Phd Married 45442.00 1 1 Killarney Ireland 3/23/2018 ... 8 2 3 8 0 0 0 0 0 0
10006429 Miss Carolyn Lewis 1973 Phd Married 77570.00 0 1 Kinsale Ireland 3/27/2019 ... 14 7 8 5 0 0 0 0 0 0
10006435 Mr. Jonathan Clarkson 1991 Phd Married 61540.00 1 0 Kinsale Ireland 12/7/2018 ... 7 2 2 5 0 0 0 0 0 0
10006442 Miss Anna Coleman 1960 Phd Single 59513.00 1 1 Kinsale Ireland 10/12/2018 ... 8 2 3 7 0 0 0 0 0 0
10006444 Mrs. Jennifer King 1968 Phd Married 62462.00 0 1 Killarney Ireland 9/24/2017 ... 17 3 6 9 0 0 0 0 0 0
10006463 Miss Julia Scott 1978 Phd Married 44861.00 1 1 Cork Ireland 2/21/2018 ... 8 3 2 7 0 0 0 0 0 0
10006465 Mr. Peter Murray 1983 Graduation Divorced 52040.00 1 1 Cork Ireland 1/2/2018 ... 8 3 3 8 0 0 0 0 0 0
10006481 Mr. Peter Wright 1971 Phd Married 56856.00 1 0 Kinsale Ireland 5/17/2018 ... 8 2 4 7 0 0 0 0 0 0
10006483 Miss Faith McDonald 1994 Graduation Married 113743.00 0 0 Kinsale Ireland 10/13/2018 ... 11 9 7 2 0 0 0 0 0 0
10006501 Mr. Lucas Paterson 1980 Phd Married 60004.00 1 0 Killarney Ireland 6/30/2018 ... 10 2 4 8 0 0 0 0 0 0
10006536 Mrs. Maria Hardacre 1992 Phd Married 70283.00 0 0 Killarney Ireland 2/3/2018 ... 14 9 13 5 0 0 0 0 0 0
10006537 Mr. Harry Ince 1959 Graduation Married 54826.00 1 1 Cork Ireland 11/7/2018 ... 8 3 3 6 0 0 0 0 0 0
10006557 Mr. Peter Hardacre 1971 Master Married 54789.00 1 1 Killarney Ireland 5/4/2019 ... 6 2 3 5 0 0 0 0 0 0
10006564 Mr. Evan Thomson 1953 Phd Divorced 52077.00 2 1 Killarney Ireland 2/3/2019 ... 8 2 4 5 0 0 0 0 0 0
10006578 Mr. Benjamin Hunter 1990 Master Single 61786.00 1 0 Killarney Ireland 4/26/2019 ... 7 2 4 6 0 0 0 0 0 0
10006584 Mr. Dan McGrath 1962 Phd Married 72773.00 0 1 Cork Ireland 4/17/2019 ... 11 6 4 4 0 0 0 0 0 0
10006596 Mr. Dylan Kelly 1960 Master Married 57505.00 0 2 Kinsale Ireland 4/17/2018 ... 8 2 3 5 0 0 0 0 0 0
10006616 Mr. Gavin Hamilton 1989 Phd Married 104123.00 0 0 Killarney Ireland 6/26/2019 ... 11 7 12 1 0 0 0 0 0 0
10006626 Mr. Connor Alsop 1973 Graduation Married 62371.00 1 1 Killarney Ireland 7/13/2018 ... 6 3 2 4 0 0 0 0 0 0
10006644 Miss Hannah Arnold 1963 Phd Married 127549.95 0 1 Kinsale Ireland 8/31/2017 ... 22 1 1 1 0 0 0 0 0 0
10006655 Mr. Sebastian Kelly 1974 Phd Married 81082.00 0 2 Kinsale Ireland 10/26/2017 ... 17 6 11 8 0 0 0 0 0 0
10006656 Miss Abigail Knox 1987 Phd Married NaN 1 0 Cork Ireland 2/27/2019 ... 9 3 3 6 0 0 0 0 0 0
10006660 Mrs. Audrey Hudson 1974 Phd Single 77454.00 1 1 Cork Ireland 6/8/2019 ... 7 2 2 5 0 0 0 0 0 0
10006675 Mr. Steven Quinn 1958 Phd Married 67771.00 1 1 Killarney Ireland 4/27/2018 ... 9 3 5 5 0 0 0 0 0 0
10006690 Mr. Adrian Russell 1965 Phd Married 58950.00 1 1 Cork Ireland 11/30/2018 ... 8 3 5 6 0 0 0 0 0 0
10006702 Mr. Adrian May 1954 Phd Married 77174.00 0 1 Killarney Ireland 12/22/2017 ... 12 3 6 7 0 0 0 0 0 0
10006728 Mr. Robert MacDonald 1989 Phd Single 74804.00 0 0 Killarney Ireland 3/4/2018 ... 10 10 13 2 0 1 0 0 0 0
10006746 Mr. Piers Reid 1964 Graduation Divorced 51110.00 1 1 Cork Ireland 8/4/2017 ... 9 2 3 9 0 0 0 0 0 0
10006766 Mr. Alexander Grant 1985 Phd Married 79413.00 0 0 Kinsale Ireland 9/13/2017 ... 15 5 13 6 0 0 0 0 0 0
10006776 Mr. Peter Welch 1966 Phd Married 36870.00 1 1 Killarney Ireland 9/25/2017 ... 9 2 3 9 0 0 0 0 0 0
10006799 Mr. Justin Kelly 1950 Graduation Married 24370.00 0 0 Kinsale Ireland 9/7/2017 ... 7 2 2 7 0 0 0 0 0 0
10006814 Miss Andrea Ball 1965 Phd Divorced 79205.00 0 1 Cork Ireland 12/22/2017 ... 9 4 11 8 0 1 0 0 1 0
10006832 Mrs. Anne Ellison 1973 Phd Married 73784.00 0 0 Kinsale Ireland 8/9/2018 ... 16 12 8 6 0 0 0 0 0 0
10006863 Mr. Brandon Hughes 1955 Phd Married 37885.00 0 1 Killarney Ireland 4/9/2019 ... 8 3 4 2 0 0 0 0 0 0
10006917 Mr. Leonard Forsyth 1986 Phd Married 25980.00 1 0 Kinsale Ireland 9/25/2018 ... 7 2 2 7 0 0 0 0 0 0
10006935 Mr. Alexander Fisher 1988 Phd Married 55588.00 1 0 Cork Ireland 3/23/2019 ... 7 2 2 8 0 0 0 0 0 0
10006962 Mr. Andrew Short 1988 Phd Married 118870.00 1 0 Cork Ireland 2/19/2018 ... 12 7 11 8 1 0 1 0 0 0
10006970 Miss Anne Mills 1981 Phd Married 51806.00 1 1 Killarney Ireland 12/27/2017 ... 7 2 2 6 0 0 0 0 0 0
10006971 Miss Samantha James 1980 Phd Married 46113.00 2 1 Cork Ireland 4/20/2019 ... 8 2 3 6 0 0 0 0 0 0
10006973 Mr. Christopher Alsop 1961 Phd Married 77448.00 0 1 Kinsale Ireland 1/21/2018 ... 17 5 7 8 0 0 0 0 0 0
10006980 Mr. Neil Clark 1967 Phd Married 80841.00 1 1 Kinsale Ireland 4/6/2018 ... 15 4 8 7 0 1 0 0 0 0
10006984 Mr. Harry Martin 1983 Phd Married 33829.00 1 1 Cork Ireland 9/16/2018 ... 7 2 3 8 0 0 0 0 0 0
10006989 Mr. Kevin Jones 1982 Phd Married 63025.00 1 1 Killarney Ireland 6/3/2019 ... 7 2 3 3 0 0 0 0 0 0
10006998 Mrs. Leah White 1969 Phd Married 79437.00 0 1 Cork Ireland 1/20/2018 ... 12 12 4 4 0 0 0 0 0 0
10007000 Miss Amanda Miller 1975 Phd Married 63751.00 0 1 Cork Ireland 2/1/2019 ... 8 4 2 4 1 0 0 0 0 0
10007030 Mr. Steven Hodges 1958 Phd Single 63022.00 0 1 Cork Ireland 10/17/2017 ... 13 3 5 8 0 0 0 0 0 0
10007039 Mr. Justin Paterson 1962 Phd Divorced 44806.00 1 1 Cork Ireland 4/6/2019 ... 8 2 3 8 0 0 0 0 0 0
10007064 Mrs. Grace Pullman 1954 Graduation Single 51397.00 0 0 Killarney Ireland 10/2/2017 ... 9 4 3 6 0 0 0 0 0 0
10007065 Mr. Colin King 1971 Phd Married 51804.00 1 1 Cork Ireland 5/24/2019 ... 8 2 3 7 0 0 0 0 0 0
10007086 Mrs. Sonia Short 1990 Phd Married 62697.00 0 0 Cork Ireland 3/6/2019 ... 10 7 7 3 0 0 0 0 0 0
10007092 Mr. Peter Scott 1977 Phd Single 91266.00 0 1 Cork Ireland 5/13/2018 ... 13 9 9 5 0 0 0 0 0 0
10007104 Miss Dorothy Morrison 1969 Graduation Married 46273.00 1 1 Cork Ireland 4/25/2019 ... 7 3 3 5 0 0 0 0 0 0
10007108 Mr. Alan Russell 1953 Phd Married 46643.00 0 1 Cork Ireland 11/23/2018 ... 7 3 3 6 0 0 0 0 0 0
10007112 Mr. Piers Jackson 1982 Graduation Married 17499.00 1 0 Kinsale Ireland 9/3/2018 ... 9 2 3 9 0 0 0 0 0 0
10007113 Mr. Simon White 1994 Graduation Married 31911.00 1 0 Cork Ireland 4/24/2018 ... 7 2 2 6 0 0 0 0 0 0
10007169 Mr. Andrew Duncan 1977 Phd Single 99741.00 0 1 Cork Ireland 12/20/2017 ... 11 6 5 4 0 0 0 0 0 0
10007181 Miss Penelope Springer 1990 Graduation Married 52604.00 1 0 Cork Ireland 4/4/2019 ... 8 2 3 6 0 0 0 0 0 0
10007182 Mrs. Kylie Russell 1976 Phd Married 69575.00 1 0 Kinsale Ireland 9/19/2018 ... 11 3 8 4 0 0 0 0 0 0
10007184 Mrs. Joan Paterson 1957 Phd Married 58831.00 0 1 Killarney Ireland 5/12/2018 ... 12 4 5 8 0 0 0 0 0 0
10007216 Miss Penelope Mathis 1981 Phd Married 39480.00 1 0 Kinsale Ireland 11/19/2018 ... 8 2 3 7 0 0 0 0 0 0
10007223 Mr. Justin Murray 1986 Master Married 85044.00 2 0 Kinsale Ireland 4/15/2019 ... 8 4 9 2 0 0 0 0 0 0
10007256 Mr. Justin Vaughan 1981 Phd Single 93252.00 0 1 Killarney Ireland 6/22/2018 ... 9 5 4 6 0 1 1 0 1 0
10007277 Miss Ava Langdon 1970 Master Married 74414.00 1 1 Kinsale Ireland 3/19/2019 ... 7 3 2 4 0 0 0 0 0 0
10007286 Mr. Sam Poole 1969 Phd Single 68548.00 1 1 Cork Ireland 5/27/2018 ... 6 2 3 5 0 0 0 0 0 0
10007295 Mrs. Alison Bailey 1958 Graduation Married 88056.00 1 1 Cork Ireland 6/18/2019 ... 13 7 3 6 0 1 0 0 0 1
10007321 Mr. Lucas Skinner 1960 Phd Married 41938.00 1 1 Kinsale Ireland 7/7/2018 ... 8 2 3 8 0 0 0 0 0 0
10007323 Miss Victoria North 1964 Phd Married 59100.00 0 1 Killarney Ireland 3/8/2018 ... 14 4 7 8 0 1 0 0 0 0
10007326 Mrs. Diana Mathis 1981 Phd Married 33810.00 0 1 Kinsale Ireland 7/23/2018 ... 7 2 3 6 0 0 0 0 0 0
10007339 Mrs. Sue Randall 1966 Phd Married 136171.95 0 1 Killarney Ireland 8/17/2018 ... 1 0 0 1 0 0 0 0 0 0
10007341 Mr. Stewart Marshall 1979 Phd Single 65232.00 1 1 Cork Ireland 10/19/2018 ... 10 4 3 8 0 0 0 0 0 0
10007353 Mr. Lucas Brown 1955 Phd Married 60090.00 0 1 Killarney Ireland 5/17/2018 ... 7 2 2 7 0 0 0 0 0 0
10007381 Mr. Evan Piper 1953 Phd Married 68245.00 0 1 Cork Ireland 6/24/2019 ... 7 3 3 2 0 1 0 0 0 0
10007395 Mr. Max Wright 1966 Graduation Married 40176.00 1 1 Kinsale Ireland 3/19/2019 ... 7 2 3 6 0 0 0 0 0 0
10007403 Mr. Paul Buckland 1974 Phd Married 4476.30 0 1 Killarney Ireland 12/20/2017 ... 1 0 0 13 0 0 0 0 0 0
10007418 Mr. Joseph Wright 1959 Master Married 39562.00 1 1 Killarney Ireland 3/13/2018 ... 6 2 3 6 0 0 0 0 0 0
10007434 Mr. Jack Gray 1975 Graduation Single 47686.00 1 0 Cork Ireland 12/12/2018 ... 8 2 4 6 0 0 0 0 0 0
10007455 Mr. Carl Knox 1985 Master Single 60040.00 1 1 Kinsale Ireland 5/24/2019 ... 8 2 2 8 0 0 0 0 0 0
10007481 Mr. Jack Ogden 1958 Phd Divorced 53134.00 1 1 Kinsale Ireland 4/8/2018 ... 7 2 3 6 0 0 0 0 0 0
10007500 Miss Felicity Hughes 1984 Graduation Single 69097.00 2 1 Kinsale Ireland 6/30/2019 ... 7 2 2 7 1 0 0 0 0 0
10007504 Miss Audrey Wallace 1955 Master Married 62362.00 1 1 Kinsale Ireland 12/15/2018 ... 10 3 4 8 1 0 0 0 0 0
10007505 Mr. Keith Pullman 1986 Phd Single 95263.00 0 0 Cork Ireland 4/10/2019 ... 8 5 6 1 0 0 0 0 0 0
10007506 Mr. Brandon Quinn 1978 Phd Single 61943.00 0 1 Killarney Ireland 1/22/2019 ... 8 2 4 6 0 0 0 0 0 0
10007510 Mr. Eric Mackenzie 1970 Phd Married NaN 0 1 Kinsale Ireland 10/9/2017 ... 11 7 8 8 0 0 0 0 1 0
10007516 Mrs. Emma May 1978 Master Married 19603.00 1 0 Cork Ireland 1/7/2019 ... 9 3 3 5 0 0 0 0 0 0
10007557 Mr. Carl Mackay 1973 Master Married 99247.00 0 1 Cork Ireland 6/27/2019 ... 11 5 4 2 0 0 0 0 0 0
10007583 Miss Michelle Hudson 1957 Phd Widow 39782.00 1 2 Kinsale Ireland 3/24/2018 ... 10 3 4 8 0 0 0 0 0 0
10007605 Mr. Sean Smith 1979 Graduation Married 85237.00 0 0 Cork Ireland 4/12/2019 ... 9 5 13 2 0 0 0 0 0 0
10007611 Mr. Ian Campbell 1977 Phd Married 56525.00 1 0 Killarney Ireland 3/24/2019 ... 7 2 3 7 0 0 0 0 0 0
10007612 Mr. Sebastian Manning 1976 Phd Married 83985.00 0 1 Killarney Ireland 4/23/2019 ... 10 4 10 3 0 0 0 0 0 0
10007623 Miss Wendy Avery 1949 Phd Married 68750.00 0 0 Kinsale Ireland 10/2/2017 ... 10 6 10 8 0 1 1 0 0 0
10007627 Mr. Leonard Mackenzie 1952 Phd Married 78249.00 0 1 Cork Ireland 3/7/2019 ... 13 3 6 6 0 0 0 0 0 0
10007629 Mr. Sam Lee 1969 Phd Married 72096.00 1 1 Killarney Ireland 7/28/2018 ... 8 2 2 8 0 0 0 0 0 0
10007648 Mr. Carl Marshall 1957 Phd Married 72175.00 0 1 Killarney Ireland 2/17/2019 ... 7 2 3 7 0 0 0 0 0 0
10007664 Mr. Robert Miller 1969 Phd Married 59984.00 1 1 Killarney Ireland 11/11/2017 ... 10 4 3 8 0 0 0 0 0 0
10007694 Mr. Harry Powell 1963 Phd Married 61999.00 0 2 Kinsale Ireland 3/7/2018 ... 8 2 4 7 0 0 0 0 0 0
10007704 Miss Caroline Hill 1952 Phd Married 51257.00 1 1 Kinsale Ireland 1/28/2019 ... 7 2 3 7 0 0 0 0 0 0
10007740 Mr. Luke Allan 1988 Phd Married 92296.00 0 0 Killarney Ireland 7/13/2018 ... 13 8 11 4 1 0 1 0 0 0
10007770 Mr. Alan Springer 1962 Master Married 51997.00 1 1 Kinsale Ireland 11/4/2017 ... 8 2 3 8 0 0 0 0 0 1
10007776 Mr. Alexander Howard 1949 Phd Married 94787.00 0 0 Kinsale Ireland 4/11/2018 ... 13 10 12 4 0 1 1 0 0 0
10007785 Mr. Keith Scott 1981 Phd Divorced 44243.00 1 1 Kinsale Ireland 5/29/2018 ... 8 3 2 6 0 0 0 0 0 0
10007788 Mr. Trevor Poole 1965 Phd Single 53865.00 1 1 Kinsale Ireland 3/17/2019 ... 9 2 4 6 0 0 0 0 0 0
10007816 Mr. Isaac Jones 1970 Phd Married 46932.00 1 1 Killarney Ireland 9/16/2018 ... 7 2 3 4 0 0 0 0 0 0
10007834 Mr. Connor Martin 1960 Phd Married 27061.00 1 1 Killarney Ireland 8/2/2018 ... 7 2 3 7 0 0 0 0 0 0
10007839 Mr. Jonathan Burgess 1954 Phd Widow 39295.00 1 1 Cork Ireland 3/19/2019 ... 8 2 2 8 0 0 0 0 0 0
10007863 Mrs. Dorothy Scott 1964 Phd Married 29574.00 0 1 Killarney Ireland 11/1/2018 ... 9 3 3 7 0 0 0 0 0 0
10007871 Mr. John Scott 1976 Phd Married 44241.00 1 0 Cork Ireland 1/4/2019 ... 7 2 2 6 1 0 0 0 0 0
10007888 Mr. Justin Turner 1966 Phd Married 50430.00 1 1 Killarney Ireland 2/21/2019 ... 7 2 2 6 0 0 0 0 0 0
10007904 Mr. Tim Peters 1974 Phd Married 54824.00 1 0 Killarney Ireland 4/22/2018 ... 8 2 4 6 0 0 0 0 0 0
10007910 Mr. Sean Sutherland 1962 Phd Married 89237.00 0 1 Cork Ireland 9/25/2018 ... 13 6 5 5 0 1 0 1 0 0
10007925 Mr. Kevin Lambert 1985 Phd Married 19928.00 1 0 Cork Ireland 10/1/2018 ... 7 2 3 7 0 0 0 0 0 0
10007932 Mrs. Nicola Hemmings 1957 Master Single 43828.00 1 1 Kinsale Ireland 3/10/2018 ... 7 2 3 4 0 0 0 0 0 0
10007933 Mr. Dan Howard 1970 Phd Divorced 52852.00 1 1 Cork Ireland 12/14/2018 ... 7 3 2 5 0 0 0 0 0 0
10007951 Mr. Benjamin Turner 1973 Phd Single 52135.00 0 1 Kinsale Ireland 4/28/2018 ... 7 2 3 5 0 0 0 0 0 0
10007963 Mr. Michael Newman 1977 Master Married 23999.00 1 0 Cork Ireland 7/21/2018 ... 7 2 3 7 0 0 0 0 0 0
10007964 Mr. Victor Nash 1972 Phd Single 49782.00 1 0 Kinsale Ireland 6/26/2019 ... 7 2 3 8 0 0 0 0 0 0
10007981 Mr. James Johnston 1970 Phd Married 66821.00 1 1 Killarney Ireland 6/21/2019 ... 7 2 4 5 0 1 0 0 0 0
10007988 Mr. Max Underwood 1974 Phd Married 73220.00 2 1 Kinsale Ireland 4/29/2018 ... 12 3 4 8 0 0 0 0 0 0
10007999 Mr. Trevor North 1979 Graduation Single 84145.00 0 1 Kinsale Ireland 5/1/2018 ... 17 6 9 7 0 0 0 0 0 0
10008000 Mr. Sam Hamilton 1974 Phd Single 36816.00 1 0 Killarney Ireland 5/7/2019 ... 8 2 3 6 0 0 0 0 0 0
10008023 Mrs. Emily Hart 1974 Phd Married 58951.00 1 0 Killarney Ireland 3/22/2019 ... 7 2 2 4 0 0 0 0 0 0
10008039 Miss Leah Cornish 1974 Phd Married 28397.00 1 0 Cork Ireland 2/27/2019 ... 8 3 2 8 1 0 0 0 0 0
10008055 Mr. Andrew Bell 1978 Phd Divorced 102164.00 0 0 Cork Ireland 4/9/2019 ... 9 13 7 1 0 0 1 1 0 0
10008062 Miss Angela Abraham 1957 Graduation Married 98522.00 0 0 Cork Ireland 11/14/2018 ... 9 13 8 1 0 0 0 0 0 0
10008065 Mr. Gavin Morrison 1971 Phd Married 51524.00 1 1 Cork Ireland 11/30/2018 ... 8 2 3 7 0 0 0 0 0 1
10008110 Mr. Jake Alsop 1958 Phd Married 78417.00 1 1 Cork Ireland 9/3/2018 ... 9 3 4 5 0 0 0 0 0 0
10008115 Mr. William Sutherland 1962 Phd Married 65734.00 1 1 Cork Ireland 10/15/2017 ... 7 2 3 6 0 0 0 0 0 0
10008117 Miss Audrey Newman 1963 Phd Married 65904.00 0 1 Cork Ireland 3/1/2018 ... 15 5 6 8 0 0 0 0 0 0
10008122 Mr. Colin Marshall 1971 Phd Married 57490.00 0 1 Kinsale Ireland 3/5/2018 ... 9 3 7 5 0 0 0 0 0 0
10008128 Mr. Dan Springer 1959 Phd Widow 61902.00 1 1 Killarney Ireland 10/14/2018 ... 8 4 2 5 0 0 0 0 0 0
10008145 Mr. Carl Hemmings 1962 Phd Single 58761.00 1 1 Killarney Ireland 3/16/2018 ... 7 3 3 5 0 0 0 0 0 0
10008149 Mr. Neil Hemmings 1973 Graduation Married 41562.00 1 1 Cork Ireland 11/21/2017 ... 6 2 3 6 0 0 0 0 0 0
10008155 Mrs. Abigail Ince 1978 Phd Married 41722.00 1 0 Kinsale Ireland 4/25/2018 ... 6 2 3 6 1 0 0 0 0 0
10008156 Mr. William Black 1983 Phd Married NaN 1 0 Killarney Ireland 6/19/2018 ... 9 2 3 7 0 0 0 0 0 0
10008170 Mr. Gavin Taylor 1982 Graduation Single 27283.00 1 0 Cork Ireland 6/3/2018 ... 8 2 4 8 0 0 0 0 0 0
10008184 Mrs. Gabrielle Ince 1968 Phd Married 44223.00 0 1 Cork Ireland 10/14/2017 ... 8 3 4 7 0 0 0 0 0 0
10008190 Mr. Stewart Randall 1981 Phd Married 84259.00 0 1 Kinsale Ireland 9/18/2017 ... 14 10 10 5 0 0 0 0 0 0
10008192 Mr. Adrian Davies 1982 Phd Married 47607.00 1 0 Kinsale Ireland 7/18/2018 ... 6 2 3 4 0 0 0 0 0 0
10008203 Mr. Austin Pullman 1991 Phd Married 39030.00 1 0 Cork Ireland 9/3/2017 ... 7 2 3 9 0 0 0 0 0 0
10008210 Mr. Eric Smith 1978 Master Single 34765.00 1 0 Killarney Ireland 6/10/2019 ... 8 2 3 8 0 0 0 0 0 0
10008215 Mr. Peter Short 1959 Phd Divorced 53934.00 0 1 Kinsale Ireland 2/17/2019 ... 7 3 2 5 1 0 0 0 0 0
10008238 Mr. Peter Burgess 1968 Phd Married 85418.00 0 1 Cork Ireland 11/26/2017 ... 16 5 7 7 0 0 0 0 0 0
10008250 Mr. Tim Mitchell 1986 Phd Married 77702.00 0 0 Kinsale Ireland 1/26/2018 ... 16 4 12 6 0 0 0 1 0 0
10008258 Mr. Oliver Turner 1963 Phd Married 157942.05 1 1 Cork Ireland 1/14/2018 ... 30 0 0 0 0 0 0 0 0 0
10008279 Mr. Dylan Mathis 1973 Phd Married 97615.00 0 1 Killarney Ireland 5/16/2019 ... 12 5 12 2 0 0 0 0 0 0
10008280 Mr. Isaac Hamilton 1963 Graduation Married 56000.00 1 1 Kinsale Ireland 2/5/2018 ... 10 6 3 7 1 0 0 0 0 0
10008286 Mrs. Rose Underwood 1979 Phd Married 46177.00 1 1 Killarney Ireland 2/13/2019 ... 7 2 3 6 0 0 0 0 0 0
10008300 Mrs. Wanda King 1976 Phd Married 48460.00 1 1 Killarney Ireland 5/9/2019 ... 8 2 3 6 0 0 0 0 0 0
10008350 Mr. Benjamin Murray 1964 Phd Single 44838.00 1 1 Cork Ireland 8/9/2017 ... 9 3 4 9 0 0 0 0 0 0
10008356 Mrs. Julia Allan 1978 Phd Married 49235.00 1 1 Cork Ireland 6/3/2019 ... 9 2 3 8 0 0 0 0 0 0
10008360 Mr. Ian Langdon 1970 Phd Married 55586.00 1 1 Killarney Ireland 1/26/2018 ... 8 2 3 8 0 0 0 0 0 0
10008361 Mr. Paul Ferguson 1962 Phd Single 64023.00 0 1 Killarney Ireland 8/25/2017 ... 17 3 7 8 0 0 0 0 0 0
10008368 Mr. Richard Turner 1964 Phd Married 59312.00 0 1 Kinsale Ireland 3/13/2019 ... 6 2 3 5 0 0 0 0 0 0
10008373 Miss Jane Piper 1978 Phd Divorced 60591.00 1 1 Kinsale Ireland 9/23/2017 ... 12 3 4 9 0 0 0 0 0 0
10008377 Mrs. Lisa Mills 1976 Phd Married 62227.00 1 1 Killarney Ireland 9/17/2017 ... 12 3 8 8 1 0 0 0 0 0
10008400 Mr. Stephen MacDonald 1974 Phd Married 28606.00 1 1 Cork Ireland 3/25/2019 ... 7 3 3 3 0 0 0 0 0 0
10008408 Mr. Jake Ferguson 1978 Phd Divorced 107106.00 0 0 Killarney Ireland 12/29/2018 ... 13 10 4 4 0 0 1 0 0 0
10008409 Mr. Leonard Martin 1980 Phd Widow 49699.00 0 0 Cork Ireland 5/23/2018 ... 15 3 6 8 0 1 0 0 0 0
10008415 Mr. Alexander Nash 1963 Graduation Married 42709.00 1 1 Killarney Ireland 11/26/2018 ... 7 2 4 4 0 0 0 0 0 0
10008431 Mr. Warren Kerr 1985 Phd Married 27879.00 1 0 Killarney Ireland 4/9/2019 ... 9 2 4 5 0 0 0 0 0 0
10008439 Mr. Brian Glover 1977 Phd Divorced 37127.00 1 1 Cork Ireland 8/13/2018 ... 9 3 3 8 1 0 0 0 0 0
10008448 Mr. Dominic Parr 1977 Phd Married 62428.00 0 1 Cork Ireland 8/15/2017 ... 12 4 9 7 0 0 0 0 0 0
10008453 Mrs. Faith Ross 1981 Phd Married 43444.00 1 1 Killarney Ireland 6/16/2019 ... 7 2 2 7 0 0 0 0 0 0
10008461 Miss Megan Roberts 1970 Phd Married 5193.40 0 0 Cork Ireland 11/26/2017 ... 2 1 0 11 1 0 0 1 0 0
10008477 Mr. Gavin Mackenzie 1981 Phd Widow 83332.00 1 0 Cork Ireland 12/10/2018 ... 9 3 6 4 0 0 0 0 0 0
10008491 Mr. David Paige 1984 Master Married 83407.00 0 1 Kinsale Ireland 5/12/2018 ... 13 5 5 6 0 0 0 0 0 0
10008496 Mr. Matt Avery 1958 Phd Married 77101.00 0 1 Cork Ireland 4/4/2018 ... 14 4 8 7 0 0 0 0 0 0
10008498 Mr. Evan Abraham 1967 Phd Widow 133197.45 0 1 Kinsale Ireland 9/14/2017 ... 2 0 1 1 1 0 0 0 0 0
10008526 Mrs. Vanessa Arnold 1980 Phd Married 56316.00 1 1 Kinsale Ireland 7/11/2018 ... 7 2 2 6 0 0 0 0 0 0
10008536 Mr. Brian Hunter 1980 Graduation Married 55691.00 0 1 Cork Ireland 7/11/2018 ... 7 2 3 5 0 0 0 0 0 0
10008568 Mr. Tim Hamilton 1969 Phd Married 59767.00 0 1 Kinsale Ireland 4/27/2019 ... 8 2 4 7 0 0 0 0 0 0
10008569 Mr. Stephen Alsop 1989 Phd Married 42220.00 1 0 Kinsale Ireland 12/22/2018 ... 7 2 3 5 0 0 0 0 0 0
10008575 Mrs. Abigail Short 1977 Phd Single 87580.00 0 2 Killarney Ireland 3/30/2019 ... 15 4 9 5 0 0 0 0 0 0
10008594 Miss Emma Campbell 1959 Phd Married 51269.00 1 1 Kinsale Ireland 3/31/2019 ... 9 2 3 7 0 0 0 0 0 0
10008598 Mr. Max Peters 1960 Phd Widow 81068.00 0 1 Kinsale Ireland 10/21/2017 ... 13 6 6 6 0 1 0 1 0 0
10008601 Mr. Luke Payne 1977 Graduation Married 82157.00 0 0 Kinsale Ireland 9/30/2017 ... 9 8 8 3 0 0 0 0 0 0
10008617 Mr. Justin Clark 1976 Phd Married 102659.00 0 1 Cork Ireland 3/29/2018 ... 17 6 9 5 0 0 0 1 0 0
10008637 Mr. Cameron Peters 1958 Phd Married 91151.00 0 1 Killarney Ireland 4/5/2018 ... 8 4 12 7 0 1 1 0 0 0
10008656 Mr. Steven Churchill 1959 Graduation Married 41003.00 1 1 Kinsale Ireland 7/12/2018 ... 7 3 3 5 0 0 0 0 0 0
10008661 Mrs. Pippa Russell 1959 Phd Married 46954.00 1 1 Killarney Ireland 7/7/2018 ... 7 2 3 5 0 0 0 0 0 0
10008686 Mrs. Ella Metcalfe 1984 Phd Married 40473.00 1 0 Killarney Ireland 6/10/2019 ... 7 2 3 7 0 0 0 0 0 0
10008712 Mr. Lucas Reid 1953 Phd Married 70668.00 1 1 Kinsale Ireland 6/10/2019 ... 9 2 3 8 1 0 0 0 0 0
10008721 Mr. Joshua Walsh 1965 Phd Married 52337.00 0 1 Cork Ireland 12/16/2018 ... 10 4 4 6 0 0 0 0 0 0
10008722 Mr. Owen Cameron 1967 Phd Single 52243.00 0 1 Cork Ireland 9/11/2018 ... 7 3 4 4 0 0 0 0 0 0
10008729 Miss Jan Alsop 1992 Phd Married 59339.00 1 0 Killarney Ireland 3/5/2019 ... 9 2 3 7 0 0 0 0 0 0
10008742 Mr. Steven Henderson 1958 Graduation Married 57226.00 1 1 Cork Ireland 5/22/2018 ... 9 3 3 7 0 0 0 0 0 0
10008749 Mrs. Jan Peters 1960 Phd Married 54982.00 0 1 Kinsale Ireland 4/12/2019 ... 7 2 2 6 0 0 0 0 0 0
10008761 Mr. William Howard 1956 Phd Divorced 100133.25 0 0 Cork Ireland 8/8/2018 ... 1 1 1 0 0 1 1 0 0 0
10008763 Mrs. Michelle Gibson 1991 Phd Married 51947.00 1 0 Kinsale Ireland 12/31/2018 ... 8 3 2 7 0 0 0 0 0 0
10008787 Mr. Piers MacDonald 1956 Phd Widow 100100.00 0 0 Cork Ireland 1/13/2019 ... 9 8 12 1 0 0 1 0 0 0
10008795 Mr. Andrew Davidson 1986 Phd Divorced 39569.00 1 0 Killarney Ireland 12/8/2018 ... 7 2 3 6 0 0 0 0 0 0
10008829 Mrs. Gabrielle Jackson 1973 Phd Married 27236.00 1 0 Killarney Ireland 3/25/2019 ... 7 2 2 8 0 0 0 0 0 0
10008873 Mr. Oliver Vance 1951 Phd Single 69276.00 0 0 Kinsale Ireland 8/30/2017 ... 16 5 13 7 0 0 0 0 0 0
10008886 Mr. Edward Butler 1960 Master Married 45627.00 1 1 Killarney Ireland 2/12/2018 ... 7 2 2 7 0 0 0 0 0 0
10008897 Mr. Alan Quinn 1982 Phd Divorced 52886.00 1 0 Cork Ireland 5/26/2018 ... 10 4 3 7 1 0 0 0 0 0
10008905 Mr. Luke Springer 1953 Phd Divorced 85819.00 0 1 Kinsale Ireland 4/19/2019 ... 17 5 10 7 0 1 0 1 1 0
10008910 Mrs. Virginia Ferguson 1969 Graduation Single 53192.00 1 1 Killarney Ireland 5/3/2019 ... 8 3 3 5 0 0 0 0 0 0
10008923 Mrs. Penelope Ball 1980 Phd Married 61640.00 1 1 Killarney Ireland 9/23/2018 ... 6 2 3 4 0 0 0 0 0 0
10008933 Mr. Joe Harris 1981 Phd Married 102732.00 0 1 Kinsale Ireland 8/4/2018 ... 15 7 13 8 0 1 0 0 0 0
10008951 Mr. Carl Piper 1972 Phd Married 53643.00 0 1 Kinsale Ireland 10/15/2018 ... 8 3 5 6 0 0 0 0 0 0
10008952 Mrs. Fiona Forsyth 1970 Phd Divorced 52304.00 0 0 Killarney Ireland 5/11/2018 ... 6 2 3 4 0 0 0 0 0 0
10008972 Miss Hannah Rees 1973 Phd Single 84592.00 1 1 Cork Ireland 4/28/2019 ... 7 2 3 4 0 0 0 0 0 0
10008983 Mr. Alan Turner 1973 Phd Married 29603.00 1 0 Cork Ireland 11/8/2017 ... 8 2 3 9 0 0 0 0 0 0
10008985 Mr. Sean Quinn 1975 Phd Married 83350.00 0 1 Killarney Ireland 9/10/2018 ... 12 6 10 6 0 0 0 0 0 0
10008993 Mr. Owen Wilson 1979 Master Single 48647.00 2 1 Killarney Ireland 3/21/2019 ... 7 3 3 4 0 0 0 0 0 0
10009000 Mr. Jake Abraham 1973 Phd Married 72674.00 0 1 Killarney Ireland 4/4/2019 ... 8 2 4 5 0 0 0 0 0 0
10009003 Mrs. Karen Welch 1988 Phd Single 34809.00 1 0 Cork Ireland 8/24/2018 ... 6 3 2 6 0 0 0 0 0 0
10009009 Mr. Jake Langdon 1970 Phd Married 81567.00 1 1 Kinsale Ireland 4/27/2019 ... 8 2 3 5 0 0 0 0 0 0
10009018 Mr. Stephen White 1974 Graduation Married 144765.15 0 1 Cork Ireland 6/27/2018 ... 1 0 0 1 0 0 0 0 0 0
10009077 Mr. Richard Baker 1965 Graduation Married 51644.00 1 1 Kinsale Ireland 8/10/2018 ... 7 3 2 5 1 0 0 0 0 0
10009079 Mrs. Julia Murray 1985 Phd Married 51849.00 1 0 Cork Ireland 3/3/2019 ... 7 2 3 7 0 0 0 0 0 0
10009084 Mr. Christian Rampling 1993 Master Married 54263.00 1 0 Cork Ireland 6/29/2018 ... 7 2 2 7 0 0 0 0 0 0
10009148 Mr. Dominic Mackay 1970 Phd Married 35541.00 1 1 Cork Ireland 12/18/2017 ... 7 2 2 8 0 0 0 0 0 0
10009156 Mr. Michael Underwood 1977 Phd Married 103359.00 0 1 Killarney Ireland 8/29/2018 ... 14 9 7 4 1 0 1 1 0 0
10009157 Mrs. Amelia Wright 1968 Phd Married 71035.00 0 1 Killarney Ireland 12/1/2018 ... 11 4 4 6 0 0 0 0 0 0
10009163 Mr. Boris MacLeod 1953 Phd Widow 78640.00 0 1 Kinsale Ireland 4/6/2019 ... 11 6 3 4 0 0 0 0 0 0
10009164 Mr. Robert Terry 1972 Graduation Widow 40997.00 1 1 Cork Ireland 10/9/2018 ... 7 2 3 3 0 0 0 0 0 0
10009168 Mrs. Megan Watson 1988 Graduation Single 18767.00 1 0 Cork Ireland 2/28/2019 ... 7 2 2 9 0 0 0 0 0 0
10009176 Miss Bernadette Howard 1948 Phd Married 92087.00 0 0 Cork Ireland 4/1/2019 ... 13 4 12 3 0 1 1 0 0 0
10009198 Miss Theresa Payne 1974 Phd Divorced 42046.00 1 0 Killarney Ireland 9/27/2018 ... 7 3 2 7 1 0 0 0 0 0
10009223 Miss Joanne Hardacre 1975 Master Married 73011.00 0 1 Cork Ireland 5/9/2019 ... 7 2 3 4 0 0 0 0 0 0
10009227 Mrs. Jane Peters 1957 Phd Married 72696.00 0 1 Cork Ireland 3/12/2019 ... 9 3 5 5 0 0 0 0 0 0
10009236 Mr. Gavin Allan 1967 Phd Married 79380.00 0 1 Killarney Ireland 4/17/2019 ... 13 5 5 6 0 0 0 0 0 0
10009251 Mr. Thomas Russell 1974 Phd Married 24225.00 1 0 Killarney Ireland 2/20/2018 ... 7 2 2 8 0 0 0 0 0 0
10009259 Mrs. Dorothy Rees 1971 Phd Single 49878.00 1 1 Cork Ireland 3/26/2019 ... 6 2 3 5 0 0 0 0 0 0
10009261 Mr. Harry Mitchell 1963 Phd Divorced 56324.00 1 1 Kinsale Ireland 12/12/2018 ... 8 2 3 7 0 0 0 0 0 0
10009282 Mr. Edward King 1973 Phd Divorced 35427.00 1 0 Killarney Ireland 11/27/2018 ... 8 2 4 7 0 0 0 0 0 0
10009289 Mrs. Nicola Berry 1971 Graduation Married 71524.00 0 1 Killarney Ireland 7/13/2018 ... 8 3 7 9 0 0 0 0 0 0
10009302 Mr. Christian Murray 1969 Phd Married 58191.00 0 1 Killarney Ireland 10/24/2017 ... 7 2 2 6 0 0 0 0 0 0
10009309 Mrs. Theresa Taylor 1982 Master Single 36340.00 1 0 Killarney Ireland 11/8/2018 ... 7 2 3 7 0 0 0 0 0 0
10009312 Mrs. Dorothy Blake 1983 Graduation Married 73626.00 1 0 Kinsale Ireland 5/18/2018 ... 11 4 5 6 0 0 0 0 0 0
10009324 Mr. Steven Metcalfe 1981 Phd Married 74478.00 0 1 Killarney Ireland 8/13/2018 ... 14 6 9 7 1 0 0 0 1 0
10009356 Mr. Sam Dyer 1969 Graduation Single 29250.00 0 0 Cork Ireland 3/27/2019 ... 7 2 3 6 0 0 0 0 0 0
10009360 Mr. Thomas Peake 1980 Phd Married 50027.00 0 2 Killarney Ireland 3/1/2019 ... 6 2 3 4 0 0 0 0 0 0
10009367 Mr. Phil Bailey 1981 Phd Divorced 5286.30 0 1 Kinsale Ireland 2/4/2019 ... 30 0 0 1 0 0 0 0 0 0
10009369 Mrs. Lily Terry 1991 Graduation Single 23867.00 1 0 Killarney Ireland 10/22/2018 ... 7 2 2 7 0 0 0 0 0 0
10009384 Mr. Sam McLean 1970 Phd Single 15459.00 0 1 Killarney Ireland 10/9/2018 ... 8 3 3 6 0 0 0 0 0 1
10009410 Mr. Stewart Walsh 1975 Phd Married 29857.00 1 0 Cork Ireland 1/25/2018 ... 8 2 3 8 0 0 0 0 0 0
10009427 Mr. Christian Harris 1962 Phd Single 128536.00 0 0 Killarney Ireland 8/1/2017 ... 13 12 11 3 0 1 1 1 0 0
10009437 Mr. Cameron Walsh 1956 Phd Married 38996.00 1 1 Kinsale Ireland 6/14/2018 ... 7 2 3 8 0 0 0 0 0 0
10009439 Mrs. Lillian Ince 1972 Phd Married 51547.00 1 1 Kinsale Ireland 11/10/2018 ... 8 2 4 7 0 0 0 0 0 0
10009470 Mrs. Dorothy Young 1982 Phd Married 59469.00 1 1 Cork Ireland 2/16/2019 ... 12 3 4 8 0 0 0 0 0 0
10009503 Mr. Adrian Roberts 1979 Phd Married 60205.00 1 1 Kinsale Ireland 7/26/2018 ... 11 4 3 8 0 0 0 0 0 0
10009507 Mr. Ryan Alsop 1977 Phd Married 125265.00 0 0 Cork Ireland 8/18/2017 ... 12 12 13 3 1 0 1 1 0 0
10009511 Mr. Ian Quinn 1983 Master Married 94004.00 0 0 Killarney Ireland 10/1/2017 ... 8 6 9 6 0 1 1 0 0 0
10009514 Mr. Tim Sutherland 1962 Phd Widow 44591.00 1 1 Cork Ireland 11/4/2017 ... 7 2 2 8 0 0 0 0 0 0
10009517 Mr. Adrian Grant 1962 Phd Widow 59401.00 0 1 Kinsale Ireland 9/1/2018 ... 10 3 5 7 0 0 0 0 0 0
10009525 Mrs. Tracey Marshall 1970 Phd Married 44414.00 1 1 Cork Ireland 2/4/2019 ... 7 2 3 7 0 0 0 0 0 0
10009540 Mr. James Gibson 1963 Master Divorced 76677.00 0 1 Kinsale Ireland 2/2/2018 ... 16 4 12 7 0 1 0 0 0 0
10009541 Mrs. Emily Butler 1954 Phd Married 57431.00 0 1 Killarney Ireland 7/25/2018 ... 8 2 3 6 0 0 0 0 0 0
10009547 Mrs. Emily Johnston 1964 Phd Married 47029.00 1 1 Cork Ireland 6/9/2019 ... 8 2 4 5 0 0 0 0 0 0
10009563 Mrs. Ruth Paterson 1988 Phd Divorced 32933.00 1 0 Killarney Ireland 3/25/2018 ... 7 2 2 7 1 0 0 0 0 0
10009567 Mr. Eric Burgess 1954 Phd Widow 4335.40 1 1 Kinsale Ireland 9/8/2017 ... 1 0 0 13 0 0 0 0 0 0
10009578 Miss Lillian Hodges 1975 Graduation Divorced 53398.00 0 1 Kinsale Ireland 10/17/2018 ... 7 2 3 6 0 0 0 0 0 0
10009637 Mr. Neil Burgess 1959 Graduation Married 55955.00 1 1 Cork Ireland 11/24/2018 ... 7 2 3 4 0 0 0 0 0 0
10009662 Mr. Joshua Hill 1977 Graduation Married 68715.00 0 1 Cork Ireland 12/10/2017 ... 8 4 11 8 0 0 0 0 0 0
10009667 Miss Hannah Black 1971 Phd Married 79507.00 0 1 Killarney Ireland 12/16/2018 ... 10 3 8 4 0 0 0 0 0 0
10009672 Miss Kylie Henderson 1966 Phd Married 62497.00 0 1 Killarney Ireland 6/7/2019 ... 7 2 2 5 0 0 0 0 0 0
10009702 Mr. Frank Mackay 1991 Phd Divorced 37902.00 1 0 Kinsale Ireland 10/4/2017 ... 7 2 2 8 0 0 0 0 0 0
10009708 Mr. Phil Gibson 1982 Phd Married 54212.00 1 1 Killarney Ireland 4/25/2019 ... 8 3 3 3 0 0 0 0 0 0
10009760 Mr. Edward Sharp 1969 Graduation Married 86552.00 0 0 Cork Ireland 9/20/2018 ... 10 6 9 3 0 0 0 1 0 0
10009791 Mr. Stephen McDonald 1990 Phd Married 49545.00 1 0 Killarney Ireland 12/28/2017 ... 10 3 5 7 0 0 0 0 0 0
10009796 Mr. Warren Carr 1962 Phd Married 55332.00 0 1 Cork Ireland 8/8/2018 ... 15 3 7 9 0 0 0 0 0 0
10009810 Mr. Anthony North 1978 Phd Single 71869.00 1 1 Killarney Ireland 4/22/2019 ... 11 3 5 7 0 1 0 0 0 0
10009828 Mr. Neil Gill 1962 Phd Married 85190.00 0 1 Killarney Ireland 4/6/2019 ... 15 3 7 6 0 0 0 0 0 0
10009840 Mr. Neil Simpson 1956 Phd Married 62855.00 0 1 Kinsale Ireland 1/7/2019 ... 7 3 2 6 0 0 0 0 0 0
10009848 Miss Amelia Allan 1972 Master Divorced 81443.00 0 1 Killarney Ireland 2/12/2019 ... 16 5 7 7 0 1 0 1 0 0
10009853 Mr. Tim Dickens 1974 Phd Married 63740.00 1 1 Kinsale Ireland 9/24/2018 ... 8 2 3 7 0 0 0 0 0 0
10009861 Mr. Joe Hill 1961 Phd Single 72667.00 0 1 Kinsale Ireland 2/8/2019 ... 8 4 11 2 0 0 0 0 0 0
10009863 Mr. Colin Metcalfe 1972 Master Married 50862.00 1 1 Cork Ireland 4/22/2018 ... 8 2 3 7 0 0 0 0 0 0
10009884 Mr. Kevin Hart 1961 Phd Single 43971.00 1 1 Kinsale Ireland 3/8/2018 ... 7 2 3 6 0 0 0 0 0 0
10009897 Mr. David Cornish 1983 Master Married 38822.00 1 0 Kinsale Ireland 7/12/2018 ... 7 3 2 6 0 0 0 0 0 0
10009899 Mr. Keith Metcalfe 1974 Master Divorced 53553.00 0 1 Kinsale Ireland 2/23/2018 ... 8 2 3 7 0 0 0 0 0 0
10009904 Mrs. Virginia Robertson 1976 Phd Married 41405.00 0 1 Kinsale Ireland 5/20/2018 ... 12 6 3 9 1 0 0 0 0 0
10009914 Mr. Luke Young 1986 Phd Married 44627.00 1 0 Cork Ireland 10/13/2017 ... 9 2 4 7 0 0 0 0 0 0
10009919 Miss Amy Allan 1975 Phd Single 39004.00 1 1 Kinsale Ireland 1/19/2018 ... 8 3 3 8 0 0 0 0 0 0
10009954 Mr. Alan Metcalfe 1979 Phd Married 41063.00 1 1 Cork Ireland 6/8/2018 ... 7 2 2 8 0 0 0 0 0 0
10009969 Mr. Tim Sharp 1997 Master Married 71126.00 0 0 Killarney Ireland 1/21/2018 ... 8 5 5 8 0 1 0 0 0 0
10009989 Mr. John Greene 1983 Phd Married 29994.00 1 0 Kinsale Ireland 8/21/2018 ... 6 3 2 6 0 0 0 0 0 0
10010007 Miss Joanne Blake 1974 Phd Married 72732.00 0 1 Kinsale Ireland 3/4/2019 ... 11 3 4 7 0 0 0 0 0 0
10010021 Mr. Stephen Pullman 1970 Phd Divorced 75433.00 0 1 Killarney Ireland 5/6/2018 ... 13 5 7 5 0 0 0 0 0 0
10010022 Mrs. Elizabeth Scott 1967 Phd Married 59566.00 1 1 Killarney Ireland 3/8/2019 ... 7 2 3 5 0 0 0 0 0 0
10010027 Mr. Ian Watson 1961 Phd Married 75669.00 0 1 Killarney Ireland 8/14/2018 ... 13 4 9 5 0 0 0 0 0 0
10010048 Miss Victoria Roberts 1981 Phd Married 52560.00 0 1 Cork Ireland 2/22/2019 ... 7 2 3 2 0 0 0 0 0 0
10010049 Mrs. Jasmine Bailey 1966 Phd Single 59387.00 0 1 Cork Ireland 9/3/2018 ... 7 2 2 7 0 0 0 0 0 0
10010053 Miss Yvonne Butler 1989 Phd Married 12591.00 1 0 Kinsale Ireland 8/25/2017 ... 7 2 3 8 0 0 0 0 0 0
10010066 Mrs. Ava Knox 1964 Phd Divorced 77227.00 0 1 Cork Ireland 3/14/2019 ... 7 3 2 2 1 0 0 0 0 0
10010077 Mr. Warren Wilkins 1973 Phd Married 62710.00 1 1 Cork Ireland 4/15/2018 ... 11 3 4 8 0 0 0 0 0 0
10010078 Mrs. Kimberly Tucker 1969 Master Married 105755.00 0 1 Killarney Ireland 10/24/2017 ... 16 6 6 6 0 0 0 1 0 0
10010090 Miss Sonia Hodges 1964 Phd Married NaN 0 1 Killarney Ireland 2/15/2018 ... 14 4 8 7 0 0 0 0 0 0
10010093 Mr. Phil Metcalfe 1961 Phd Married 56307.00 1 1 Cork Ireland 3/26/2019 ... 7 2 3 5 0 0 0 0 0 0
10010112 Mr. Nathan Duncan 1970 Phd Married 41539.00 0 1 Cork Ireland 1/14/2019 ... 8 2 4 4 0 0 0 0 0 0
10010120 Mr. David Bond 1992 Master Single 33729.00 1 0 Cork Ireland 6/14/2019 ... 7 2 3 6 0 0 0 0 0 0
10010126 Mr. Jake Sanderson 1956 Master Married 91292.00 0 1 Killarney Ireland 3/30/2018 ... 11 3 8 9 0 1 0 0 0 0
10010140 Mr. Carl Morgan 1967 Phd Married 76095.00 0 1 Cork Ireland 1/25/2019 ... 13 7 13 5 1 0 0 0 0 0
10010141 Mr. Stephen Bower 1962 Phd Divorced 35190.00 0 1 Kinsale Ireland 3/23/2019 ... 7 2 3 4 0 0 0 0 0 0
10010150 Mr. Dan Miller 1976 Phd Married 67598.00 2 1 Killarney Ireland 7/1/2018 ... 8 3 2 6 0 0 0 0 0 0
10010164 Mr. Matt Piper 1960 Phd Married 49240.00 0 1 Killarney Ireland 5/18/2018 ... 11 4 4 8 0 0 0 0 0 0
10010183 Mr. Austin Skinner 1958 Phd Married 97289.00 0 1 Killarney Ireland 12/16/2017 ... 13 4 8 5 1 0 0 0 0 0
10010186 Mr. Jake Berry 1971 Phd Married 50636.00 1 2 Killarney Ireland 9/7/2017 ... 8 2 4 7 0 0 0 0 0 0
10010208 Mr. Warren Burgess 1979 Phd Married 51695.00 1 0 Kinsale Ireland 6/25/2019 ... 7 2 2 5 0 0 0 0 0 0
10010223 Mrs. Wanda Miller 1980 Graduation Married 20185.00 1 1 Cork Ireland 5/6/2019 ... 7 2 2 7 0 0 0 0 0 0
10010224 Mr. Eric Carr 1964 Master Married 58201.00 1 1 Kinsale Ireland 8/3/2018 ... 7 2 3 7 0 0 0 0 0 0
10010228 Mr. Dylan Bailey 1980 Phd Divorced 57826.00 1 1 Kinsale Ireland 12/12/2017 ... 9 3 5 5 0 0 0 0 0 0
10010241 Miss Penelope Mackenzie 1966 Phd Married 89651.00 0 2 Killarney Ireland 12/11/2017 ... 17 4 11 7 0 0 0 0 0 0
10010242 Mrs. Rebecca Peters 1969 Phd Married 70973.00 0 1 Kinsale Ireland 12/27/2017 ... 14 4 5 8 0 0 0 0 0 0
10010272 Mrs. Claire Nolan 1986 Graduation Married 22464.00 1 1 Kinsale Ireland 6/24/2018 ... 7 2 3 4 0 0 0 0 0 0
10010317 Mrs. Pippa Tucker 1966 Phd Married 86078.00 0 1 Killarney Ireland 3/27/2019 ... 14 4 8 6 0 0 0 0 0 0
10010318 Mr. Dylan Ross 1957 Graduation Married 61592.00 1 1 Killarney Ireland 5/24/2019 ... 7 3 2 5 1 0 0 0 0 0
10010325 Mr. David Rees 1975 Graduation Married 23531.00 1 0 Cork Ireland 11/13/2018 ... 9 2 3 8 0 0 0 0 0 0
10010342 Mr. Stewart Mills 1990 Phd Married 56795.00 1 0 Cork Ireland 6/19/2019 ... 7 3 2 6 1 0 0 0 0 0
10010362 Miss Diana Davies 1969 Phd Married 64961.00 0 1 Kinsale Ireland 1/12/2018 ... 11 4 6 5 0 0 0 0 0 0
10010367 Miss Grace Wilson 1979 2n cycle Single 23880.00 1 0 Cork Ireland 11/27/2017 ... 7 2 2 7 0 0 0 0 0 0
10010374 Miss Jasmine Graham 1957 Phd Single 56738.00 1 1 Kinsale Ireland 1/13/2018 ... 8 2 3 4 0 0 0 0 0 0
10010391 Mr. Jason Allan 1957 Phd Single 88445.00 0 1 Kinsale Ireland 4/4/2018 ... 15 5 5 5 0 0 0 0 0 0
10010392 Mr. Brian Thomson 1977 Phd Single 81139.00 1 1 Kinsale Ireland 10/24/2017 ... 15 5 7 7 0 0 0 0 0 0
10010407 Mr. Carl Rees 1965 Graduation Single 86257.00 0 0 Cork Ireland 8/31/2017 ... 12 6 6 4 0 0 0 0 0 0
10010417 Mrs. Abigail Smith 1991 Phd Married 30621.00 1 0 Killarney Ireland 2/7/2019 ... 9 2 3 9 0 0 0 0 0 0
10010418 Mr. Kevin Walsh 1976 Phd Married 103509.00 0 0 Killarney Ireland 3/11/2018 ... 10 4 6 2 0 1 1 0 0 0
10010425 Mr. Simon Hardacre 1977 Phd Married 50024.00 1 0 Kinsale Ireland 5/13/2018 ... 7 2 3 8 0 0 0 0 0 0
10010442 Mr. Julian Cornish 1964 Phd Married 54828.00 1 1 Killarney Ireland 5/1/2018 ... 7 2 3 6 0 0 0 0 0 0
10010462 Mr. Thomas Mitchell 1962 Master Married 66441.00 0 1 Cork Ireland 5/17/2019 ... 9 3 3 4 0 0 0 0 0 0
10010465 Mr. Matt Terry 1981 Graduation Single 57748.00 1 0 Kinsale Ireland 2/7/2019 ... 8 3 3 5 0 0 0 0 0 0
10010506 Miss Jane Wilkins 1975 Phd Married 49695.00 1 1 Cork Ireland 5/2/2018 ... 10 3 2 9 1 0 0 0 0 0
10010530 Miss Melanie Buckland 1958 Graduation Single 31761.00 1 1 Cork Ireland 5/17/2018 ... 8 2 3 7 0 0 0 0 0 0
10010535 Miss Deirdre MacLeod 1965 Master Married 62688.00 1 1 Killarney Ireland 4/1/2019 ... 10 2 4 9 0 0 0 0 0 0
10010543 Mr. Oliver Graham 1976 Phd Married 39076.00 2 1 Kinsale Ireland 6/21/2019 ... 8 2 3 5 0 0 0 0 0 0
10010549 Mr. Carl Ferguson 1965 Phd Married 71722.00 1 1 Cork Ireland 9/5/2017 ... 15 3 7 7 0 0 0 0 0 0
10010560 Miss Anne Powell 1988 Phd Single 41538.00 1 0 Cork Ireland 12/14/2017 ... 7 2 3 8 0 0 0 0 0 0
10010568 Mr. Ian Paterson 1974 Phd Married 99858.00 0 1 Kinsale Ireland 6/26/2019 ... 15 4 8 6 0 0 0 0 0 0
10010614 Mr. Brian McDonald 1962 Master Married 52354.00 0 1 Kinsale Ireland 5/14/2018 ... 7 2 2 7 0 0 0 0 0 0
10010622 Mr. Nathan Quinn 1971 Phd Divorced 52366.00 1 0 Cork Ireland 3/1/2019 ... 7 2 2 6 1 0 0 0 0 0
10010623 Mr. Julian Bower 1976 Phd Divorced 21288.00 1 0 Cork Ireland 9/15/2018 ... 8 2 3 8 0 0 0 0 0 0
10010627 Mrs. Megan Springer 1979 Phd Married 55385.00 1 0 Killarney Ireland 12/10/2017 ... 14 3 7 8 0 0 0 0 0 0
10010631 Mr. Jonathan Metcalfe 1991 Phd Married 34281.00 1 0 Killarney Ireland 3/1/2019 ... 9 3 2 8 1 0 0 0 0 0
10010638 Mr. Simon Gill 1967 Phd Married 51585.00 1 1 Kinsale Ireland 6/11/2019 ... 8 2 4 6 1 0 0 0 0 0
10010666 Mr. Gavin Avery 1965 Phd Married 45877.00 1 1 Cork Ireland 4/3/2019 ... 7 2 2 7 0 0 0 0 0 0
10010688 Mr. Benjamin Payne 1951 Phd Single 50934.00 0 1 Cork Ireland 3/30/2018 ... 11 3 5 8 0 0 0 0 0 0
10010692 Mr. Sean Grant 1969 Phd Married 56630.00 1 2 Killarney Ireland 2/18/2019 ... 8 3 4 5 0 0 0 0 0 0
10010731 Mr. Joe Kerr 1973 Phd Married 57868.00 0 0 Kinsale Ireland 7/27/2018 ... 9 3 3 8 0 0 0 0 0 0
10010736 Mr. Joseph Pullman 1975 Phd Divorced 28488.00 1 0 Killarney Ireland 5/15/2018 ... 8 3 2 9 1 0 0 0 0 0
10010744 Mr. Simon Clark 1990 Phd Married 94537.00 0 0 Killarney Ireland 1/15/2019 ... 9 10 7 1 1 0 1 1 0 0
10010745 Mr. Christopher Mackenzie 1962 Graduation Married 52795.00 1 1 Kinsale Ireland 1/17/2018 ... 7 2 4 7 0 0 0 0 0 0
10010753 Mr. James Edmunds 1972 Phd Married 54975.00 1 2 Kinsale Ireland 2/7/2018 ... 7 2 2 6 0 0 0 0 0 0
10010770 Mrs. Tracey Morrison 1989 Phd Married 53640.00 1 0 Kinsale Ireland 12/4/2017 ... 10 3 4 8 0 0 0 0 0 0
10010774 Mr. Nicholas Glover 1974 Phd Married 99791.00 0 0 Kinsale Ireland 11/10/2018 ... 9 10 6 1 0 0 0 0 0 0
10010776 Mr. Jason Clarkson 1978 Phd Single 42383.00 1 0 Killarney Ireland 3/21/2019 ... 9 2 4 5 0 0 0 0 0 1
10010797 Mr. Austin Tucker 1981 Phd Married 61353.00 1 1 Cork Ireland 4/14/2019 ... 7 2 3 7 1 0 0 0 1 0
10010813 Mrs. Tracey Vaughan 1984 Master Single 26882.00 1 0 Cork Ireland 11/9/2018 ... 7 2 2 8 0 0 0 0 0 0
10010817 Mr. Neil Arnold 1957 Master Married 41581.00 1 1 Killarney Ireland 9/5/2018 ... 7 2 3 5 0 0 0 0 0 0
10010818 Mr. Joshua Jackson 1958 Phd Widow 49076.00 1 1 Kinsale Ireland 12/21/2017 ... 7 2 2 6 0 0 0 0 0 0
10010825 Mr. Adrian Vaughan 1983 Graduation Married 71344.00 0 0 Kinsale Ireland 1/14/2019 ... 8 7 11 2 0 0 0 0 0 0
10010830 Mr. Andrew Simpson 1983 Phd Divorced 62852.00 1 1 Cork Ireland 3/7/2019 ... 8 3 2 7 0 0 0 0 0 0
10010838 Mr. Alexander Cameron 1983 Graduation Married 66428.00 1 1 Kinsale Ireland 6/19/2018 ... 7 2 3 6 0 0 0 0 0 0
10010841 Mrs. Megan Sanderson 1980 Phd Single 44759.00 1 1 Kinsale Ireland 6/25/2019 ... 9 2 4 8 0 0 0 0 0 0
10010846 Mr. Jason Rutherford 1962 Phd Married 30936.00 0 0 Cork Ireland 5/11/2018 ... 7 2 3 4 0 0 0 0 0 0
10010851 Miss Theresa Lyman 1963 Graduation Single 87154.00 0 1 Killarney Ireland 3/7/2018 ... 10 5 7 8 0 0 0 0 0 0
10010854 Miss Deirdre MacDonald 1983 Phd Married 78544.00 0 1 Cork Ireland 2/10/2019 ... 12 4 9 5 0 1 0 0 1 0
10010872 Mr. Julian Allan 1956 Phd Divorced 105196.00 0 0 Cork Ireland 9/7/2018 ... 16 7 4 4 0 1 1 1 0 0
10010875 Mr. Nicholas Campbell 1992 Graduation Married 36082.00 1 0 Kinsale Ireland 8/14/2018 ... 7 3 2 9 1 0 0 0 0 0
10010880 Mr. Leonard Scott 1986 Phd Married 101777.00 0 0 Kinsale Ireland 10/15/2017 ... 10 9 12 2 0 0 0 0 0 0
10010893 Mr. Colin Lee 1973 Phd Married 52082.00 1 0 Killarney Ireland 3/26/2019 ... 7 2 3 4 1 0 0 0 0 0
10010912 Mr. Connor Terry 1970 Phd Married 92663.00 0 2 Killarney Ireland 3/6/2018 ... 15 7 13 6 0 0 0 0 0 0
10010914 Mr. Stewart Clark 1962 Phd Single 59908.00 0 1 Killarney Ireland 1/19/2019 ... 8 3 3 5 0 0 0 0 0 0
10010918 Mr. Oliver Greene 1968 Phd Married 56391.00 1 1 Cork Ireland 3/6/2018 ... 9 2 3 9 0 0 0 0 0 0
10010922 Mr. Stephen Hemmings 1958 Phd Married 60275.00 2 1 Kinsale Ireland 11/11/2017 ... 9 3 6 6 0 1 0 0 0 0
10010958 Miss Sue Graham 1978 Master Single 95758.00 0 1 Kinsale Ireland 8/29/2018 ... 9 5 5 6 0 1 1 0 0 0
10010963 Mrs. Sally Sharp 1977 Phd Married 110081.00 0 1 Killarney Ireland 8/23/2017 ... 14 8 6 4 0 0 0 1 0 0
10010964 Mr. Keith MacDonald 1981 Phd Married 55001.00 1 0 Kinsale Ireland 11/14/2018 ... 8 2 3 7 0 0 0 0 0 0
10010965 Mrs. Jessica McLean 1969 Phd Single 52719.00 1 1 Killarney Ireland 9/12/2017 ... 7 2 2 8 0 0 0 0 0 0
10010996 Miss Theresa Springer 1980 Master Married 41200.00 1 0 Kinsale Ireland 8/2/2018 ... 7 2 2 8 0 0 0 0 0 0
10010998 Mr. Keith Mills 1989 Phd Married 66058.00 2 0 Kinsale Ireland 2/13/2018 ... 11 3 8 7 0 0 0 0 0 0
10011036 Mr. Julian Hughes 1970 Phd Divorced 90817.00 0 1 Kinsale Ireland 11/3/2017 ... 12 6 8 4 0 0 0 0 0 0
10011064 Mr. Nathan Bell 1983 Phd Married 79364.00 0 1 Kinsale Ireland 3/12/2018 ... 11 4 11 9 0 0 0 0 0 0
10011067 Mr. Isaac Peake 1979 Phd Married 66943.00 0 1 Killarney Ireland 7/17/2018 ... 12 8 4 6 0 0 0 0 0 0
10011068 Mr. Owen Taylor 1984 Graduation Married 56334.00 2 0 Cork Ireland 2/13/2019 ... 7 2 3 5 0 0 0 0 0 0
10011069 Mr. Jason Kerr 1973 Phd Single 74391.00 0 1 Kinsale Ireland 1/16/2019 ... 13 3 7 7 0 0 0 0 0 0
10011075 Mr. Julian Ogden 1971 Phd Divorced 80605.00 0 1 Cork Ireland 3/7/2019 ... 14 3 8 6 0 0 0 0 0 0
10011085 Mr. Boris Piper 1960 Graduation Married 31710.00 1 1 Kinsale Ireland 7/17/2018 ... 7 2 3 8 1 0 0 0 0 0
10011112 Miss Karen Churchill 1964 Phd Married 63912.00 0 1 Kinsale Ireland 10/13/2018 ... 12 4 4 7 0 0 0 0 0 0
10011133 Mrs. Theresa Gibson 1977 Phd Married 67488.00 0 1 Cork Ireland 4/19/2019 ... 10 2 4 7 0 0 0 0 0 0
10011157 Mr. Adrian Welch 1963 Phd Divorced 76712.00 1 1 Cork Ireland 4/27/2019 ... 10 3 6 5 0 1 0 0 0 0
10011163 Mr. Robert Harris 1970 Phd Married 54752.00 1 2 Kinsale Ireland 12/1/2018 ... 8 4 2 4 1 0 0 0 0 0
10011179 Mrs. Julia Clark 1974 Phd Married 121065.00 0 0 Kinsale Ireland 10/28/2018 ... 13 9 4 2 0 1 1 1 0 0
10011181 Mr. Sean Kelly 1977 Phd Married 38817.00 1 0 Cork Ireland 1/24/2018 ... 7 3 2 8 0 0 0 0 0 0
10011193 Mr. Simon Clarkson 1982 Phd Married 46682.00 1 0 Kinsale Ireland 4/14/2018 ... 7 2 3 6 0 0 0 0 0 0
10011195 Mr. Gordon Payne 1961 Phd Married 48616.00 0 0 Killarney Ireland 11/5/2018 ... 12 4 7 7 0 0 0 0 0 0
10011197 Miss Karen Fisher 1951 Phd Married 50177.00 1 1 Killarney Ireland 9/21/2017 ... 7 2 3 9 0 0 0 0 0 0
10011220 Mrs. Una Anderson 1983 Phd Divorced 113895.00 0 0 Killarney Ireland 10/14/2017 ... 10 9 10 2 0 0 0 0 0 0
10011260 Mrs. Joan Cameron 1982 Phd Married 53086.00 1 0 Killarney Ireland 12/18/2017 ... 7 2 2 8 0 0 0 0 0 0
10011261 Mr. Eric Black 1975 Master Married 45658.00 1 1 Cork Ireland 10/3/2018 ... 7 2 3 7 0 0 0 0 0 0
10011262 Mrs. Karen Hardacre 1963 Phd Single 42164.00 1 1 Killarney Ireland 12/18/2017 ... 10 3 4 7 0 0 0 0 0 0
10011266 Mr. Edward Knox 1975 Phd Married 32811.00 1 0 Killarney Ireland 10/3/2017 ... 8 3 3 8 0 0 0 0 0 0
10011271 Mr. Victor Wilkins 1980 Phd Married 38838.00 1 0 Killarney Ireland 5/2/2019 ... 7 2 2 5 0 0 0 0 0 0
10011274 Mr. Christopher Hunter 1993 Phd Married 79799.00 0 0 Kinsale Ireland 7/9/2018 ... 12 9 9 4 0 0 0 0 0 0
10011288 Mr. Richard Ball 1961 Phd Married 80266.00 0 1 Kinsale Ireland 1/3/2018 ... 12 4 11 6 0 0 0 0 0 0
10011291 Mr. Kevin Russell 1977 Phd Married 32819.00 1 0 Cork Ireland 11/25/2018 ... 7 2 2 5 0 0 0 0 0 0
10011292 Mr. Jake Metcalfe 1975 Phd Married 70195.00 0 1 Kinsale Ireland 5/23/2018 ... 13 4 7 6 0 0 0 0 0 0
10011295 Mr. Richard MacDonald 1982 Phd Divorced 31180.00 1 0 Cork Ireland 1/12/2018 ... 7 2 3 6 0 0 0 0 0 0
10011336 Mr. Leonard Ince 1956 Phd Married 61640.00 0 1 Kinsale Ireland 5/21/2019 ... 7 3 3 4 0 0 0 0 0 0
10011361 Mr. Justin Robertson 1962 Phd Divorced 94531.00 0 2 Kinsale Ireland 7/13/2018 ... 15 7 10 6 0 0 0 0 0 0
10011362 Mr. Justin Walker 1959 Phd Married 8090.10 0 1 Kinsale Ireland 12/31/2018 ... 2 0 1 14 0 1 0 0 1 0
10011387 Mr. Andrew Poole 1977 Phd Married 56984.00 0 1 Killarney Ireland 4/29/2019 ... 7 2 2 7 0 0 0 0 0 0
10011393 Mr. Jason Terry 1979 Phd Married 26276.00 1 0 Kinsale Ireland 3/26/2018 ... 8 3 2 8 0 0 0 0 0 0
10011403 Mr. Sebastian Paige 1977 Phd Married 49509.00 0 1 Cork Ireland 5/4/2019 ... 9 2 4 6 0 0 0 0 0 0
10011407 Mr. Jacob Harris 1966 Phd Married 57806.00 1 1 Kinsale Ireland 6/23/2019 ... 10 3 4 7 0 0 0 0 0 0
10011411 Mr. Blake Wallace 1956 Phd Single 82978.00 0 0 Killarney Ireland 4/1/2019 ... 14 7 10 4 0 0 0 0 0 0
10011440 Mr. Ryan Lewis 1991 Graduation Married 51203.00 1 0 Kinsale Ireland 9/12/2017 ... 10 3 5 7 0 0 0 0 0 0
10011465 Miss Maria Bell 1974 Phd Single 31862.00 0 0 Killarney Ireland 1/1/2019 ... 7 2 3 8 1 0 0 0 0 0
10011484 Mr. Kevin Nash 1992 Phd Single 4044.90 1 0 Killarney Ireland 11/10/2017 ... 28 0 0 1 0 0 0 0 0 0
10011489 Mr. Tim Abraham 1982 Phd Married 70695.00 1 1 Cork Ireland 11/11/2018 ... 7 2 2 4 0 0 0 0 0 0
10011506 Mr. Michael Sutherland 1988 Phd Single 50207.00 1 0 Killarney Ireland 1/9/2019 ... 9 2 4 7 0 0 0 0 0 0
10011518 Miss Lillian Peters 1971 Phd Married 58870.00 1 0 Killarney Ireland 1/9/2019 ... 7 2 2 6 0 0 0 0 0 0
10011544 Mr. Alan Lee 1957 Master Married 95806.00 0 1 Kinsale Ireland 1/17/2018 ... 11 7 11 3 0 0 0 0 0 0
10011563 Mr. Adam Churchill 1965 Phd Married 72621.00 1 1 Kinsale Ireland 2/10/2019 ... 7 2 2 5 0 0 0 0 0 0
10011566 Mrs. Fiona Butler 1978 Phd Married 76992.00 0 1 Killarney Ireland 11/13/2018 ... 15 3 4 8 0 0 0 0 0 0
10011568 Miss Jessica Jackson 1986 Phd Single 31547.00 1 0 Killarney Ireland 12/5/2018 ... 7 2 3 7 0 0 0 0 0 0
10011591 Mr. Joshua Bond 1976 Master Married 60917.00 0 1 Cork Ireland 1/26/2019 ... 9 3 8 4 0 1 0 0 0 0
10011603 Mrs. Carol Sharp 1971 Phd Single 47508.00 0 1 Killarney Ireland 12/15/2018 ... 7 2 3 5 0 0 0 0 0 0
10011671 Mrs. Sophie Hodges 1988 Phd Single 24134.00 1 0 Killarney Ireland 6/18/2018 ... 7 2 2 6 0 0 0 0 0 0
10011676 Miss Elizabeth Black 1984 Phd Single 53465.00 1 0 Killarney Ireland 4/27/2019 ... 8 2 3 6 0 0 0 0 0 0
10011692 Mr. Frank Ferguson 1973 Phd Married 92377.00 0 1 Kinsale Ireland 6/15/2019 ... 13 5 13 5 0 0 0 0 0 0
10011695 Mr. Evan May 1983 Phd Married 80073.00 0 1 Cork Ireland 2/23/2019 ... 13 4 5 7 0 1 0 0 0 0
10011699 Mr. Nathan Davies 1980 Phd Married 44749.00 1 1 Killarney Ireland 6/26/2019 ... 8 2 4 4 0 0 0 0 0 0
10011712 Mrs. Amelia Vaughan 1957 Master Married 56162.00 0 1 Cork Ireland 7/16/2018 ... 12 3 5 7 0 0 0 0 0 0
10011723 Mr. David Kerr 1978 Phd Married 47721.00 1 1 Killarney Ireland 5/7/2018 ... 7 2 3 8 0 0 0 0 0 0
10011740 Mrs. Dorothy Jones 1959 Phd Single 48184.00 1 1 Cork Ireland 7/17/2018 ... 9 3 4 7 0 1 0 0 0 0
10011741 Mr. Connor Jones 1963 Phd Married 54112.00 2 1 Kinsale Ireland 3/21/2019 ... 8 2 4 4 0 0 0 0 0 0
10011756 Mr. Jake Russell 1981 Phd Married 34361.00 1 0 Cork Ireland 1/2/2019 ... 7 2 2 7 0 0 0 0 0 0
10011757 Mr. Brian Anderson 1978 Master Married 76150.00 1 1 Kinsale Ireland 2/7/2018 ... 10 3 5 7 0 0 0 0 0 0
10011761 Mr. Dylan Quinn 1968 Phd Married 43662.00 1 1 Killarney Ireland 6/30/2018 ... 7 2 3 6 0 0 0 0 0 0
10011771 Mr. Paul Paterson 1965 Phd Married 49467.00 2 2 Kinsale Ireland 5/4/2018 ... 7 2 2 7 0 0 0 0 0 0
10011785 Mr. Blake Manning 1962 Phd Single 110254.00 0 0 Kinsale Ireland 4/11/2018 ... 12 11 10 3 0 1 1 1 1 0
10011807 Mrs. Angela Vaughan 1969 Phd Married 45962.00 0 1 Killarney Ireland 6/12/2019 ... 9 3 2 6 0 0 0 0 0 0
10011811 Mr. Max Forsyth 1972 Phd Married NaN 0 1 Cork Ireland 4/8/2018 ... 7 2 3 7 0 0 0 0 0 0
10011816 Mr. Jonathan Johnston 1972 Phd Married 67408.00 1 1 Cork Ireland 3/6/2019 ... 12 3 5 8 0 0 0 0 0 0
10011819 Miss Jan Pullman 1986 Phd Married 35468.00 1 0 Cork Ireland 10/14/2017 ... 8 2 3 9 0 0 0 0 0 0
10011823 Mr. Alexander Berry 1985 Phd Married 38438.00 1 0 Cork Ireland 10/23/2018 ... 9 3 2 8 0 0 0 0 0 0
10011831 Miss Jane Forsyth 1954 Phd Divorced 60851.00 1 1 Killarney Ireland 1/7/2018 ... 7 2 3 6 0 0 0 0 0 0
10011842 Mr. Austin Jones 1955 Phd Widow 40762.00 0 0 Kinsale Ireland 11/29/2018 ... 8 2 4 6 0 0 0 0 0 0
10011863 Mr. Gavin Pullman 1982 Phd Married 66958.00 0 1 Killarney Ireland 5/19/2018 ... 12 3 5 8 0 0 0 0 0 0
10011865 Mr. Alan Vance 1979 Phd Married 77696.00 0 1 Killarney Ireland 3/29/2018 ... 16 4 7 8 0 0 0 0 0 0
10011866 Mr. Jason Hughes 1969 Phd Married 42381.00 0 1 Kinsale Ireland 12/6/2017 ... 8 2 3 7 0 0 0 0 0 0
10011868 Mr. Jack Sharp 1982 Phd Married 106031.00 0 0 Cork Ireland 4/30/2019 ... 8 10 11 0 0 0 0 0 0 0
10011871 Mr. Colin Howard 1967 Graduation Married 66324.00 1 1 Kinsale Ireland 9/16/2018 ... 7 2 2 4 0 0 0 0 0 0
10011885 Mr. Joshua Reid 1988 Phd Married 37521.00 1 0 Cork Ireland 4/30/2019 ... 7 2 2 7 0 0 0 0 0 0
10011891 Mr. Christopher Wright 1980 2n cycle Married 30989.00 1 0 Killarney Ireland 1/5/2018 ... 7 2 3 8 0 0 0 0 0 0
10011898 Mr. Kevin Bell 1976 Phd Single 88452.00 0 1 Kinsale Ireland 4/14/2019 ... 14 5 6 6 0 0 0 0 0 0
10011899 Mr. Jack McLean 1959 Graduation Married 57511.00 1 1 Cork Ireland 9/2/2017 ... 7 2 2 7 0 0 0 0 0 0
10011904 Mr. Nathan Parsons 1958 Phd Married 113174.00 0 0 Kinsale Ireland 2/3/2019 ... 11 12 13 2 1 0 1 1 0 0
10011917 Mr. Adam Hodges 1979 Phd Married 121562.00 0 0 Kinsale Ireland 3/28/2018 ... 10 5 7 3 1 0 1 1 1 0
10011921 Mr. John Bailey 1962 Phd Single NaN 1 1 Killarney Ireland 4/9/2019 ... 7 2 2 6 0 0 0 0 0 0
10011931 Mr. Warren Skinner 1947 Phd Widow 103199.00 0 0 Killarney Ireland 3/1/2019 ... 9 11 5 1 0 0 0 0 0 0
10011934 Mr. Andrew Lyman 1987 Master Married 173422.05 1 0 Cork Ireland 10/5/2017 ... 1 0 0 1 0 0 0 0 0 0
10011949 Mr. William Mitchell 1980 Phd Married 164143.95 0 1 Killarney Ireland 5/24/2019 ... 1 0 0 0 0 0 0 0 0 0
10011957 Mr. Eric Vaughan 1981 Phd Single 71382.00 1 1 Killarney Ireland 1/31/2019 ... 8 3 3 5 0 0 0 0 0 0
10011967 Mrs. Anna Graham 1979 Phd Single 70040.00 0 1 Cork Ireland 4/21/2018 ... 11 3 6 5 0 0 0 0 0 0
10011990 Mr. Ryan Walker 1983 Graduation Married 17865.00 1 0 Cork Ireland 11/9/2018 ... 8 2 3 8 0 0 0 0 0 1
10012001 Miss Elizabeth Welch 1981 Master Single 39053.00 1 0 Kinsale Ireland 5/29/2018 ... 7 2 2 7 0 0 0 0 0 0
10012004 Miss Alison Fisher 1970 Phd Married 59546.00 0 1 Kinsale Ireland 11/7/2018 ... 8 2 3 6 0 0 0 0 0 0
10012012 Mrs. Lillian Gray 1972 Phd Married 64439.00 0 1 Kinsale Ireland 11/16/2018 ... 7 2 3 5 0 0 0 0 0 0
10012024 Mrs. Joanne Dyer 1982 Graduation Married 22623.00 1 0 Kinsale Ireland 10/29/2018 ... 7 2 3 8 0 0 0 0 0 0
10012025 Mr. Tim Churchill 1997 Graduation Single 89857.00 0 0 Kinsale Ireland 4/29/2018 ... 10 9 12 2 0 1 0 1 0 0
10012027 Mrs. Fiona Wallace 1981 Phd Married 58148.00 1 0 Cork Ireland 6/29/2018 ... 7 2 2 6 0 0 0 0 0 0
10012043 Mr. Jason White 1965 Phd Married 72498.00 0 2 Kinsale Ireland 2/16/2018 ... 14 5 5 7 0 0 0 0 0 0
10012064 Mr. Neil Stewart 1977 Phd Married 30788.00 1 1 Cork Ireland 5/29/2019 ... 8 3 3 7 0 0 0 0 0 0
10012070 Mr. Trevor Miller 1976 Phd Married 56804.00 1 1 Killarney Ireland 3/9/2018 ... 7 2 2 7 0 0 0 0 0 0
10012073 Miss Gabrielle Vaughan 1956 Graduation Divorced 72455.00 0 1 Killarney Ireland 4/2/2018 ... 12 5 5 6 0 0 0 0 0 0
10012083 Mr. Benjamin Mitchell 1959 Phd Married 86735.00 0 1 Kinsale Ireland 3/8/2018 ... 12 8 13 7 0 1 1 1 1 1
10012085 Mr. Nathan Hudson 1990 Phd Married 3092.90 1 0 Cork Ireland 6/24/2018 ... 1 0 0 13 0 0 0 0 0 0
10012091 Mr. Adrian Martin 1964 Master Widow 71514.00 0 1 Kinsale Ireland 6/16/2018 ... 9 3 8 4 0 0 0 0 0 0
10012096 Mr. Warren Buckland 1984 Phd Single 26974.00 1 0 Killarney Ireland 11/19/2017 ... 7 2 2 8 0 0 0 0 0 1
10012133 Mrs. Jane Duncan 1959 Phd Married 71578.00 1 1 Cork Ireland 2/24/2018 ... 9 3 4 6 0 0 0 0 0 0
10012139 Mr. Kevin Payne 1961 Phd Married 81270.00 0 1 Cork Ireland 12/1/2018 ... 10 3 5 6 0 0 0 0 0 0
10012147 Mr. Stephen Campbell 1990 Phd Married 45859.00 1 0 Cork Ireland 11/16/2018 ... 7 2 2 7 0 0 0 0 0 0
10012168 Mr. Harry Bond 1975 Phd Divorced 73615.00 0 1 Killarney Ireland 11/24/2017 ... 10 4 11 8 0 1 0 0 1 0
10012179 Mr. Peter Ince 1986 Phd Single 37883.00 1 0 Kinsale Ireland 3/5/2019 ... 9 3 3 7 0 0 0 0 0 0
10012184 Mr. Cameron Murray 1975 Phd Married 50927.00 1 1 Cork Ireland 4/19/2019 ... 8 2 4 5 0 0 0 0 0 0
10012196 Mr. Sam Ross 1980 Master Married 45783.00 2 1 Kinsale Ireland 6/3/2018 ... 8 2 3 6 0 0 0 0 0 0
10012202 Mr. Adam Roberts 1960 Phd Married 52209.00 1 1 Kinsale Ireland 2/22/2018 ... 7 2 2 9 0 0 0 0 0 0
10012208 Mr. Jacob Lewis 1974 Phd Married 30268.00 1 0 Kinsale Ireland 9/6/2018 ... 7 2 3 5 0 0 0 0 0 0
10012218 Mrs. Amelia James 1990 Phd Married 30092.00 1 0 Kinsale Ireland 4/4/2019 ... 7 2 2 8 0 0 0 0 0 0
10012220 Mrs. Carol Fraser 1963 Graduation Married 61185.00 0 1 Killarney Ireland 7/3/2018 ... 7 2 3 6 0 0 0 0 0 0
10012239 Mr. Matt Parr 1985 Phd Divorced 34628.00 1 0 Kinsale Ireland 11/8/2018 ... 8 2 3 7 0 0 0 0 0 0
10012260 Mrs. Audrey Poole 1967 Phd Widow 102420.00 0 0 Killarney Ireland 1/27/2018 ... 13 5 5 5 0 1 1 1 0 0
10012261 Mr. Jack Ross 1964 Graduation Married 116740.00 0 0 Cork Ireland 2/10/2018 ... 11 9 7 3 0 0 1 1 0 0
10012277 Mr. Piers Gill 1990 Master Single 170568.15 1 0 Cork Ireland 12/5/2018 ... 29 0 0 1 0 0 0 0 0 0
10012285 Mr. Luke Thomson 1970 Phd Single 141835.65 1 1 Kinsale Ireland 12/3/2018 ... 31 0 0 0 0 0 0 0 0 0
10012319 Miss Ella Parsons 1952 Phd Widow 39462.00 0 1 Killarney Ireland 5/10/2018 ... 7 2 2 8 0 0 0 0 0 0
10012322 Mr. Lucas MacDonald 1976 Phd Married 52685.00 0 1 Killarney Ireland 5/25/2018 ... 8 4 3 6 1 0 0 0 0 0
10012327 Mrs. Ava Rees 1955 Phd Married 50422.00 1 1 Cork Ireland 6/23/2018 ... 7 3 3 5 0 0 0 0 0 0
10012345 Mrs. Carolyn Arnold 1973 Phd Divorced 36212.00 1 1 Kinsale Ireland 3/30/2019 ... 7 2 3 6 0 0 0 0 0 0
10012354 Mr. Liam Greene 1966 Phd Single 53247.00 0 1 Cork Ireland 5/28/2019 ... 10 4 5 5 0 0 0 0 0 0
10012366 Mr. Colin Sharp 1987 Phd Single 48450.00 1 0 Kinsale Ireland 5/3/2018 ... 14 5 9 7 1 0 0 0 0 0
10012367 Mr. Blake Greene 1973 Graduation Married 47241.00 0 1 Kinsale Ireland 4/25/2019 ... 7 2 3 3 0 0 0 0 0 0
10012372 Mr. Robert Clarkson 1964 Phd Married 47646.00 1 1 Kinsale Ireland 2/22/2019 ... 7 2 3 7 0 0 0 0 0 0
10012390 Mr. Dylan Jones 1971 Phd Divorced 45958.00 2 1 Kinsale Ireland 5/5/2019 ... 7 3 4 4 0 0 0 0 0 0
10012396 Miss Zoe Rutherford 1985 Phd Married 108459.00 0 0 Cork Ireland 6/22/2019 ... 12 7 9 1 0 0 1 0 0 0
10012399 Mr. Blake Watson 1954 Phd Married 51520.00 0 1 Kinsale Ireland 12/10/2017 ... 7 2 3 5 0 0 0 0 0 0
10012400 Miss Heather Young 1971 Phd Married 47296.00 0 1 Kinsale Ireland 4/21/2018 ... 10 3 5 7 0 0 0 0 0 0
10012409 Mr. Justin Jackson 1982 Master Married 25057.00 1 0 Killarney Ireland 1/13/2018 ... 8 2 4 8 0 0 0 0 0 0
10012415 Mr. Luke Lewis 1978 Phd Married 68957.00 1 2 Cork Ireland 7/27/2018 ... 7 2 3 6 0 0 0 0 0 0
10012421 Miss Sonia Springer 1978 Phd Married 63620.00 0 1 Cork Ireland 4/10/2018 ... 16 4 10 8 0 0 0 0 1 0
10012428 Mr. Boris Morgan 1955 Phd Widow 81956.00 0 1 Killarney Ireland 12/10/2017 ... 11 4 10 5 0 0 0 0 0 0
10012434 Mr. Matt Ross 1971 Phd Single 47524.00 1 1 Kinsale Ireland 7/30/2018 ... 7 2 2 8 0 0 0 0 0 0
10012439 Mr. Eric Rees 1982 Phd Married 38067.00 1 0 Kinsale Ireland 6/18/2018 ... 7 2 2 9 0 0 0 0 0 0
10012440 Mr. Richard Buckland 1974 Phd Married 97046.00 0 1 Killarney Ireland 1/6/2018 ... 14 6 9 5 0 1 0 0 0 0
10012455 Mr. Sebastian Gill 1973 Master Single 73709.00 0 1 Killarney Ireland 6/6/2018 ... 17 3 7 9 0 1 0 0 0 0
10012478 Mr. Jason Metcalfe 1976 Phd Married 94954.00 1 1 Killarney Ireland 2/24/2018 ... 9 4 8 8 1 0 0 0 1 0
10012511 Mr. Anthony Ogden 1964 Phd Divorced 86891.00 0 0 Cork Ireland 1/15/2019 ... 16 6 13 6 1 0 1 1 1 0
10012546 Mr. Julian Poole 1986 Graduation Single 33998.00 1 1 Killarney Ireland 6/17/2018 ... 7 2 2 7 0 0 0 0 0 0
10012572 Mr. Owen Reid 1982 Phd Married 42368.00 1 0 Kinsale Ireland 4/1/2019 ... 7 2 3 6 0 0 0 0 0 0
10012579 Mr. Nicholas Blake 1969 Master Married 66688.00 1 1 Killarney Ireland 6/11/2019 ... 6 2 3 3 0 0 0 0 0 0
10012604 Mr. Evan Wilkins 1957 Phd Single 76559.00 0 1 Cork Ireland 6/26/2018 ... 11 3 6 7 0 1 0 0 0 0
10012608 Mr. Alan Mills 1978 Master Widow 31411.00 0 1 Killarney Ireland 8/9/2017 ... 7 3 4 6 0 0 0 0 0 0
10012619 Mr. Simon Piper 1971 Phd Single 40150.00 1 0 Kinsale Ireland 10/12/2017 ... 8 2 4 8 0 0 0 0 0 0
10012626 Mr. Joseph Metcalfe 1983 Phd Married 31520.00 1 0 Kinsale Ireland 7/30/2018 ... 8 2 3 8 0 0 0 0 0 0
10012627 Mr. Lucas Gill 1977 Phd Married 49419.00 1 1 Cork Ireland 5/25/2018 ... 7 2 3 7 0 0 0 0 0 0
10012635 Mr. Austin Hunter 1958 Graduation Married 56910.00 1 1 Cork Ireland 11/2/2018 ... 8 2 4 5 0 0 0 0 0 0
10012644 Mr. Thomas Scott 1953 Phd Married 65423.00 0 1 Cork Ireland 3/14/2018 ... 12 6 6 6 0 0 0 0 0 0
10012665 Mrs. Angela Robertson 1975 Phd Married 53327.00 1 1 Kinsale Ireland 5/23/2019 ... 7 2 2 6 0 0 0 0 0 0
10012673 Mr. Evan Smith 1958 Phd Single 63453.00 0 1 Killarney Ireland 12/17/2018 ... 10 3 6 6 1 0 0 1 1 0
10012689 Mr. Cameron Walker 1979 Phd Married 71082.00 0 0 Cork Ireland 8/10/2018 ... 11 3 5 7 0 0 0 0 0 0
10012695 Miss Amelia Wilkins 1961 Master Married 58795.00 1 1 Kinsale Ireland 1/30/2019 ... 7 2 2 6 0 0 0 0 0 0
10012699 Mrs. Emma Cameron 1977 Phd Married 79003.00 0 1 Kinsale Ireland 7/31/2017 ... 13 6 11 5 0 0 0 0 0 0
10012727 Mr. Eric Hart 1967 Graduation Married 35101.00 0 0 Killarney Ireland 9/5/2018 ... 6 2 3 3 0 0 0 0 0 1
10012759 Mr. Carl Ross 1965 Phd Single 69221.00 0 1 Cork Ireland 2/14/2019 ... 11 4 4 7 0 0 0 0 0 0
10012760 Miss Jennifer Black 1975 Phd Married 49954.00 1 1 Cork Ireland 9/20/2018 ... 7 2 2 5 1 0 0 0 0 0
10012796 Mr. Christian King 1979 Phd Widow 106341.00 0 0 Killarney Ireland 11/17/2018 ... 8 11 10 1 0 0 0 0 0 0
10012804 Mr. Eric North 1956 Phd Married 67649.00 0 1 Killarney Ireland 5/12/2018 ... 8 2 4 6 0 1 0 0 0 0
10012859 Miss Sue Anderson 1970 Phd Married 61976.00 1 1 Killarney Ireland 12/16/2018 ... 9 2 3 8 1 0 0 0 0 0
10012864 Miss Rachel Oliver 1978 Phd Married 37199.00 1 1 Cork Ireland 8/21/2018 ... 9 2 3 7 0 0 0 0 0 0
10012874 Miss Lisa Chapman 1977 Phd Single 71331.00 0 1 Kinsale Ireland 1/7/2019 ... 11 4 3 7 1 0 0 0 0 0
10012896 Mr. Jason Lambert 1961 Phd Married 50511.00 1 1 Cork Ireland 12/29/2018 ... 8 3 3 6 0 0 0 0 0 0
10012911 Mr. Austin Bailey 1979 Graduation Married 28473.00 1 0 Kinsale Ireland 8/21/2018 ... 8 3 2 6 1 0 0 0 0 0
10012919 Mrs. Grace Davidson 1962 Phd Married 50438.00 0 1 Kinsale Ireland 4/26/2018 ... 7 2 3 5 0 0 0 0 0 0
10012968 Mr. Sam Rees 1985 Phd Married 36176.00 1 0 Kinsale Ireland 11/15/2017 ... 7 3 2 7 0 0 0 0 0 0
10012986 Mr. Colin Gibson 1950 Phd Married 64614.00 0 0 Cork Ireland 12/1/2018 ... 9 4 5 5 0 0 0 0 0 0
10012990 Mr. Dylan Hill 1959 Graduation Married 59725.00 0 2 Kinsale Ireland 6/9/2019 ... 8 2 3 6 0 0 0 0 0 0
10012995 Mr. John Johnston 1972 Phd Married 102557.00 0 2 Killarney Ireland 9/18/2017 ... 8 4 10 6 0 0 0 0 0 0
10013001 Mr. Nicholas Parsons 1991 Phd Married 187314.45 1 0 Cork Ireland 1/29/2019 ... 1 0 0 1 0 0 0 0 0 0
10013006 Miss Audrey Davies 1989 Phd Married 28253.00 1 0 Killarney Ireland 12/28/2018 ... 8 3 3 5 0 0 0 0 0 0
10013023 Miss Vanessa Black 1962 Graduation Married 86116.00 1 1 Killarney Ireland 6/23/2019 ... 7 3 4 3 0 0 0 0 0 0
10013024 Miss Joanne Howard 1981 Graduation Married 50353.00 1 0 Cork Ireland 2/8/2019 ... 7 2 2 7 0 0 0 0 0 0
10013030 Mrs. Yvonne Slater 1979 Graduation Married 61469.00 1 1 Killarney Ireland 3/11/2019 ... 7 2 2 7 0 0 0 0 0 0
10013039 Mrs. Angela Piper 1953 Phd Widow 93674.00 0 1 Cork Ireland 6/8/2018 ... 14 6 7 5 0 0 0 0 0 0
10013052 Mr. Adam Dyer 1968 Phd Married 6267.50 1 1 Kinsale Ireland 6/27/2019 ... 1 0 0 11 0 0 0 0 0 0
10013058 Mr. Alan Lambert 1977 Graduation Married 74348.00 0 1 Killarney Ireland 4/25/2019 ... 10 3 3 6 0 1 0 0 0 0
10013064 Mr. Eric Davies 1967 Phd Married 104990.00 0 1 Cork Ireland 3/1/2018 ... 8 7 7 6 0 0 0 0 0 0

806 rows × 28 columns

In [318]:
df_treated .fillna({
    'MntHouseKeeping': df_treated ['MntHouseKeeping'].median(),
    'MntWellness_&_Beauty': df_treated ['MntWellness_&_Beauty'].median(),
    'Income' : df_treated ['Income'].median(),
        }, inplace = True)
df_treated .isna().sum()
Out[318]:
Name                         1
Year_Birth                   0
Education                    0
Marital_Status               0
Income                       0
Kidhome                      0
Teenhome                     0
Region                       0
Country                      0
Dt_Customer                  0
Recency                      0
MntGroceries                 0
MntStationery                0
MntHouseKeeping              0
MntWellness_&_Beauty         0
MntElectronics_&_Supplies    0
MntLimitedEdition            0
NumDealsPurchases            0
NumWebPurchases              0
NumCatalogPurchases          0
NumStorePurchases            0
NumWebVisitsMonth            0
AcceptedCmp1                 0
AcceptedCmp2                 0
AcceptedCmp3                 0
AcceptedCmp4                 0
AcceptedCmp5                 0
Complain                     0
dtype: int64

3.2 Data transformation¶

3.2.1 Create new variables¶

In [319]:
from datetime import date
df_treated ['Age'] = date.today().year - df_treated ['Year_Birth']
In [320]:
pd.set_option('display.max_rows', None)
In [321]:
df_treated ['Mnt'] = df_treated ['MntGroceries'] + df_treated ['MntStationery'] + df_treated ['MntHouseKeeping'] + df_treated ['MntWellness_&_Beauty'] + df_treated ['MntElectronics_&_Supplies'] + df_treated ['MntLimitedEdition']
In [322]:
df_treated ['freq'] =  df_treated ['NumWebPurchases'] + df_treated ['NumCatalogPurchases'] + df_treated ['NumStorePurchases']
In [323]:
df_treated ['MntFrq'] = df_treated ['Mnt']/df_treated ['freq']
In [324]:
df_treated ['Num_Cmp_acepted'] = df_treated ['AcceptedCmp1'] +  df_treated ['AcceptedCmp2'] + df_treated ['AcceptedCmp3'] + df_treated ['AcceptedCmp4'] + df_treated ['AcceptedCmp5']
df_treated ['Num_Cmp_acepted'].value_counts(ascending=True)
Out[324]:
4      15
3      88
2     204
1     708
0    3794
Name: Num_Cmp_acepted, dtype: int64
In [325]:
#Check the median of costumers genders , to fill entry without name
df_aux_3 = df_treated .copy ()
df_aux_3['Gender'] = np.where(df_aux_3['Name'].str.startswith('Mr.' ), "Male", "Female")
df_aux_3['Gender'].value_counts(ascending=True)
Out[325]:
Female    1578
Male      3231
Name: Gender, dtype: int64
In [326]:
df_treated [['Name']] =df_treated [['Name']] .fillna(value='Mr. John')
In [327]:
df_treated .describe(include=[object]).T
Out[327]:
count unique top freq
Name 4809 4809 Mr. Christopher Short 1
Education 4809 4 Phd 2582
Marital_Status 4809 4 Married 3237
Region 4809 3 Kinsale 1630
Country 4809 3 Ireland 4805
Dt_Customer 4809 700 6/24/2018 18
In [328]:
df_treated ['Gender'] = np.where(df_treated ['Name'].str.startswith('Mr.' ), "Male", "Female")
df_treated ['Gender'].value_counts(ascending=True)
Out[328]:
Female    1578
Male      3231
Name: Gender, dtype: int64
In [329]:
df_treated ['Dependents'] = df_treated ['Kidhome'] + df_treated ['Teenhome']

3.2.2 Drop non-relevant and redudant variables¶

In [330]:
del df_treated ['Year_Birth']
del df_treated ['Country']

3.2.3 Binning¶

In [331]:
df_treated ['age_bins'] = pd.cut(x=df_treated ['Age'], bins=[10, 20, 30, 40,50,60,70,80])
In [332]:
df_treated .head(n=5)
Out[332]:
Name Education Marital_Status Income Kidhome Teenhome Region Dt_Customer Recency MntGroceries ... AcceptedCmp5 Complain Age Mnt freq MntFrq Num_Cmp_acepted Gender Dependents age_bins
Card_ID
10003075 Mr. Adam Glover Master Married 90782.0 0 0 Cork 11/3/2018 66 622.0 ... 0 0 40 1465.0 29 50.517241 1 Male 0 (30, 40]
10003076 Mr. Cameron McDonald Phd Single 113023.0 0 0 Kinsale 4/18/2019 6 1014.0 ... 0 0 28 1818.0 21 86.571429 0 Male 0 (20, 30]
10003078 Mr. Keith Davidson Phd Single 93571.0 0 1 Cork 7/22/2018 10 639.0 ... 0 0 39 1189.0 31 38.354839 0 Male 1 (30, 40]
10003079 Mr. Alexander Gill Phd Single 91852.0 0 1 Kinsale 2/3/2018 26 806.0 ... 0 0 43 1580.0 35 45.142857 1 Male 1 (40, 50]
10003080 Mr. Neil Piper Phd Married 22386.0 1 1 Cork 10/31/2018 65 32.0 ... 0 0 53 84.0 15 5.600000 1 Male 2 (50, 60]

5 rows × 34 columns

3.3 Check for incoherencies¶

In [333]:
nrecords_original = np.shape(df_treated)[0]

df_treated = df_treated[df_treated['Mnt'] < df_treated['Income']]
nrecords_after = np.shape(df_treated)[0]
print(nrecords_original)
print(nrecords_after)
4809
4809
In [334]:
df_treated = df_treated[((df_treated['Mnt'] > 0) & (df_treated['freq'] > 0))]
nrecords_after = np.shape(df_treated)[0]
print(nrecords_after)
4809
In [335]:
#Including only numeric columns in a DataFrame description.
df_treated.describe(include=[np.number]).T
Out[335]:
count mean std min 25% 50% 75% max
Income 4809.0 69516.435517 29170.551807 2553.200000 46507.000000 69172.500000 92507.000000 187314.45
Kidhome 4809.0 0.428156 0.537184 0.000000 0.000000 0.000000 1.000000 2.00
Teenhome 4809.0 0.476190 0.542212 0.000000 0.000000 0.000000 1.000000 2.00
Recency 4809.0 49.654814 29.035512 0.000000 25.000000 49.000000 75.000000 99.00
MntGroceries 4809.0 356.270514 400.739212 0.000000 28.000000 195.000000 596.000000 1799.00
MntStationery 4809.0 27.205822 40.360475 0.000000 2.000000 9.000000 34.000000 199.00
MntHouseKeeping 4809.0 184.109919 242.259019 0.000000 18.000000 69.000000 255.000000 1093.00
MntWellness_&_Beauty 4809.0 32.134227 47.502169 0.000000 3.000000 10.000000 40.000000 239.00
MntElectronics_&_Supplies 4809.0 35.158287 54.449422 0.000000 3.000000 11.000000 42.000000 315.00
MntLimitedEdition 4809.0 54.830131 69.057229 0.000000 10.000000 29.000000 70.000000 424.00
NumDealsPurchases 4809.0 2.025993 1.365561 0.000000 1.000000 2.000000 3.000000 6.00
NumWebPurchases 4809.0 10.048243 3.256595 1.000000 8.000000 9.000000 12.000000 31.00
NumCatalogPurchases 4809.0 4.532335 2.829575 0.000000 2.000000 4.000000 6.000000 13.00
NumStorePurchases 4809.0 5.679559 3.290725 0.000000 3.000000 4.000000 8.000000 13.00
NumWebVisitsMonth 4809.0 5.182366 2.544736 0.000000 3.000000 5.000000 7.000000 18.00
AcceptedCmp1 4809.0 0.078395 0.268820 0.000000 0.000000 0.000000 0.000000 1.00
AcceptedCmp2 4809.0 0.066334 0.248891 0.000000 0.000000 0.000000 0.000000 1.00
AcceptedCmp3 4809.0 0.080058 0.271412 0.000000 0.000000 0.000000 0.000000 1.00
AcceptedCmp4 4809.0 0.063839 0.244491 0.000000 0.000000 0.000000 0.000000 1.00
AcceptedCmp5 4809.0 0.010813 0.103433 0.000000 0.000000 0.000000 0.000000 1.00
Complain 4809.0 0.012685 0.111921 0.000000 0.000000 0.000000 0.000000 1.00
Age 4809.0 47.044500 11.915123 19.000000 38.000000 46.000000 56.000000 75.00
Mnt 4809.0 689.708900 687.150239 1.800000 84.000000 439.000000 1178.000000 3110.00
freq 4809.0 20.260137 7.451417 1.000000 14.000000 20.000000 26.000000 41.00
MntFrq 4809.0 29.264582 31.661759 0.818182 6.230769 21.857143 44.206897 445.30
Num_Cmp_acepted 4809.0 0.299439 0.664780 0.000000 0.000000 0.000000 0.000000 4.00
Dependents 4809.0 0.904346 0.735650 0.000000 0.000000 1.000000 1.000000 4.00
In [336]:
df_treated.head(n=5)
Out[336]:
Name Education Marital_Status Income Kidhome Teenhome Region Dt_Customer Recency MntGroceries ... AcceptedCmp5 Complain Age Mnt freq MntFrq Num_Cmp_acepted Gender Dependents age_bins
Card_ID
10003075 Mr. Adam Glover Master Married 90782.0 0 0 Cork 11/3/2018 66 622.0 ... 0 0 40 1465.0 29 50.517241 1 Male 0 (30, 40]
10003076 Mr. Cameron McDonald Phd Single 113023.0 0 0 Kinsale 4/18/2019 6 1014.0 ... 0 0 28 1818.0 21 86.571429 0 Male 0 (20, 30]
10003078 Mr. Keith Davidson Phd Single 93571.0 0 1 Cork 7/22/2018 10 639.0 ... 0 0 39 1189.0 31 38.354839 0 Male 1 (30, 40]
10003079 Mr. Alexander Gill Phd Single 91852.0 0 1 Kinsale 2/3/2018 26 806.0 ... 0 0 43 1580.0 35 45.142857 1 Male 1 (40, 50]
10003080 Mr. Neil Piper Phd Married 22386.0 1 1 Cork 10/31/2018 65 32.0 ... 0 0 53 84.0 15 5.600000 1 Male 2 (50, 60]

5 rows × 34 columns

3.4 Create dummy Variables¶

In [337]:
df_treated ['Region'] = df_treated ['Region'].replace('Cork',0).replace('Killarney',1).replace('Kinsale',2)
df_treated ['Gender'] = df_treated ['Gender'].replace('Male',0).replace('Female',1)
In [338]:
df_treated ['Higher_Educ'] = np.where((df_treated ['Education']=='Graduation')|
                               (df_treated ['Education']=='Master')|
                               (df_treated ['Education']=='PhD'),1,0)
In [339]:
df_treated['Marital_Status'].value_counts()
Out[339]:
Married     3237
Single      1020
Divorced     412
Widow        140
Name: Marital_Status, dtype: int64
In [340]:
df_treated ['Single_or_not'] = np.where((df_treated ['Marital_Status']=='Married'),1,0)
df_treated.head(n=5).T
Out[340]:
Card_ID 10003075 10003076 10003078 10003079 10003080
Name Mr. Adam Glover Mr. Cameron McDonald Mr. Keith Davidson Mr. Alexander Gill Mr. Neil Piper
Education Master Phd Phd Phd Phd
Marital_Status Married Single Single Single Married
Income 90782 113023 93571 91852 22386
Kidhome 0 0 0 0 1
Teenhome 0 0 1 1 1
Region 0 2 0 2 0
Dt_Customer 11/3/2018 4/18/2019 7/22/2018 2/3/2018 10/31/2018
Recency 66 6 10 26 65
MntGroceries 622 1014 639 806 32
MntStationery 70 15 88 56 1
MntHouseKeeping 678 643 185 350 29
MntWellness_&_Beauty 10 74 64 54 2
MntElectronics_&_Supplies 51 36 53 54 0
MntLimitedEdition 34 36 160 260 20
NumDealsPurchases 1 1 3 1 5
NumWebPurchases 12 9 13 15 9
NumCatalogPurchases 7 4 5 9 3
NumStorePurchases 10 8 13 11 3
NumWebVisitsMonth 4 1 5 6 9
AcceptedCmp1 0 0 0 0 1
AcceptedCmp2 1 0 0 0 0
AcceptedCmp3 0 0 0 0 0
AcceptedCmp4 0 0 0 1 0
AcceptedCmp5 0 0 0 0 0
Complain 0 0 0 0 0
Age 40 28 39 43 53
Mnt 1465 1818 1189 1580 84
freq 29 21 31 35 15
MntFrq 50.5172 86.5714 38.3548 45.1429 5.6
Num_Cmp_acepted 1 0 0 1 1
Gender 0 0 0 0 0
Dependents 0 0 1 1 2
age_bins (30, 40] (20, 30] (30, 40] (40, 50] (50, 60]
Higher_Educ 1 0 0 0 0
Single_or_not 1 0 0 0 1

3.5 Normalize data¶

In [341]:
df_normalized = df_treated[['Age', 'Income', 'Mnt','Recency','MntGroceries','MntStationery','MntHouseKeeping',
                            'MntWellness_&_Beauty','MntElectronics_&_Supplies','MntLimitedEdition','NumDealsPurchases',
                            'NumWebPurchases','NumCatalogPurchases','NumWebVisitsMonth','NumStorePurchases','Dependents','freq' , 'AcceptedCmp1',
                            'AcceptedCmp2', 'AcceptedCmp3' ,'AcceptedCmp4' , 'AcceptedCmp5','Higher_Educ'
                           ]].copy()
df_normalized.head(n=5)
Out[341]:
Age Income Mnt Recency MntGroceries MntStationery MntHouseKeeping MntWellness_&_Beauty MntElectronics_&_Supplies MntLimitedEdition ... NumWebVisitsMonth NumStorePurchases Dependents freq AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Higher_Educ
Card_ID
10003075 40 90782.0 1465.0 66 622.0 70.0 678.0 10.0 51.0 34.0 ... 4 10 0 29 0 1 0 0 0 1
10003076 28 113023.0 1818.0 6 1014.0 15.0 643.0 74.0 36.0 36.0 ... 1 8 0 21 0 0 0 0 0 0
10003078 39 93571.0 1189.0 10 639.0 88.0 185.0 64.0 53.0 160.0 ... 5 13 1 31 0 0 0 0 0 0
10003079 43 91852.0 1580.0 26 806.0 56.0 350.0 54.0 54.0 260.0 ... 6 11 1 35 0 0 0 1 0 0
10003080 53 22386.0 84.0 65 32.0 1.0 29.0 2.0 0.0 20.0 ... 9 3 2 15 1 0 0 0 0 0

5 rows × 23 columns

In [342]:
# Min-Max Normalization

df_normalized = df_normalized.apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
df_normalized.describe().T
Out[342]:
count mean std min 25% 50% 75% max
Age 4809.0 0.500795 0.212770 0.0 0.339286 0.482143 0.660714 1.0
Income 4809.0 0.362431 0.157882 0.0 0.237895 0.360570 0.486865 1.0
Mnt 4809.0 0.221321 0.221077 0.0 0.026446 0.140660 0.378418 1.0
Recency 4809.0 0.501564 0.293288 0.0 0.252525 0.494949 0.757576 1.0
MntGroceries 4809.0 0.198038 0.222757 0.0 0.015564 0.108394 0.331295 1.0
MntStationery 4809.0 0.136713 0.202816 0.0 0.010050 0.045226 0.170854 1.0
MntHouseKeeping 4809.0 0.168445 0.221646 0.0 0.016468 0.063129 0.233303 1.0
MntWellness_&_Beauty 4809.0 0.134453 0.198754 0.0 0.012552 0.041841 0.167364 1.0
MntElectronics_&_Supplies 4809.0 0.111614 0.172855 0.0 0.009524 0.034921 0.133333 1.0
MntLimitedEdition 4809.0 0.129316 0.162871 0.0 0.023585 0.068396 0.165094 1.0
NumDealsPurchases 4809.0 0.337665 0.227593 0.0 0.166667 0.333333 0.500000 1.0
NumWebPurchases 4809.0 0.301608 0.108553 0.0 0.233333 0.266667 0.366667 1.0
NumCatalogPurchases 4809.0 0.348641 0.217660 0.0 0.153846 0.307692 0.461538 1.0
NumWebVisitsMonth 4809.0 0.287909 0.141374 0.0 0.166667 0.277778 0.388889 1.0
NumStorePurchases 4809.0 0.436889 0.253133 0.0 0.230769 0.307692 0.615385 1.0
Dependents 4809.0 0.226087 0.183913 0.0 0.000000 0.250000 0.250000 1.0
freq 4809.0 0.481503 0.186285 0.0 0.325000 0.475000 0.625000 1.0
AcceptedCmp1 4809.0 0.078395 0.268820 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp2 4809.0 0.066334 0.248891 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp3 4809.0 0.080058 0.271412 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp4 4809.0 0.063839 0.244491 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp5 4809.0 0.010813 0.103433 0.0 0.000000 0.000000 0.000000 1.0
Higher_Educ 4809.0 0.454772 0.498002 0.0 0.000000 0.000000 1.000000 1.0

3.6 Power Transform¶

In [343]:
data_Groceries = df_normalized['MntGroceries'].to_list() 
data_Groceries = [x+1 for x in data_Groceries]
bcdata, lam = boxcox(data_Groceries)
df_normalized = df_normalized.assign( MntGroceries_BC = bcdata)

data_Stationery = df_normalized['MntStationery'].to_list()
data_Stationery = [x+1 for x in data_Stationery]
bcdata, lam = boxcox(data_Stationery)
df_normalized = df_normalized.assign( MntStationery_BC = bcdata)

data_HouseKeeping = df_normalized['MntHouseKeeping'].to_list()
data_HouseKeeping = [x+1 for x in data_HouseKeeping]
bcdata, lam = boxcox(data_HouseKeeping)
df_normalized = df_normalized.assign( MntHouseKeeping_BC = bcdata)

data_WellnessBeauty = df_normalized['MntWellness_&_Beauty'].to_list()
data_WellnessBeauty = [x+1 for x in data_WellnessBeauty]
bcdata, lam = boxcox(data_WellnessBeauty)
df_normalized = df_normalized.assign( MntWellnessBeauty_BC = bcdata)

data_Eletronics = df_normalized['MntElectronics_&_Supplies'].to_list()
data_Eletronics = [x+1 for x in data_Eletronics]
bcdata, lam = boxcox(data_Eletronics)
df_normalized = df_normalized.assign( MntEletronics_BC = bcdata)

data_LimitedEdition = df_normalized['MntLimitedEdition'].to_list()
data_LimitedEdition = [x+1 for x in data_LimitedEdition]
bcdata, lam = boxcox(data_LimitedEdition)
df_normalized = df_normalized.assign( MntLimitedEdition_BC = bcdata)
In [344]:
df_normalized.describe().T
df_normalized = df_normalized.apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
df_normalized.describe().T
Out[344]:
count mean std min 25% 50% 75% max
Age 4809.0 0.500795 0.212770 0.0 0.339286 0.482143 0.660714 1.0
Income 4809.0 0.362431 0.157882 0.0 0.237895 0.360570 0.486865 1.0
Mnt 4809.0 0.221321 0.221077 0.0 0.026446 0.140660 0.378418 1.0
Recency 4809.0 0.501564 0.293288 0.0 0.252525 0.494949 0.757576 1.0
MntGroceries 4809.0 0.198038 0.222757 0.0 0.015564 0.108394 0.331295 1.0
MntStationery 4809.0 0.136713 0.202816 0.0 0.010050 0.045226 0.170854 1.0
MntHouseKeeping 4809.0 0.168445 0.221646 0.0 0.016468 0.063129 0.233303 1.0
MntWellness_&_Beauty 4809.0 0.134453 0.198754 0.0 0.012552 0.041841 0.167364 1.0
MntElectronics_&_Supplies 4809.0 0.111614 0.172855 0.0 0.009524 0.034921 0.133333 1.0
MntLimitedEdition 4809.0 0.129316 0.162871 0.0 0.023585 0.068396 0.165094 1.0
NumDealsPurchases 4809.0 0.337665 0.227593 0.0 0.166667 0.333333 0.500000 1.0
NumWebPurchases 4809.0 0.301608 0.108553 0.0 0.233333 0.266667 0.366667 1.0
NumCatalogPurchases 4809.0 0.348641 0.217660 0.0 0.153846 0.307692 0.461538 1.0
NumWebVisitsMonth 4809.0 0.287909 0.141374 0.0 0.166667 0.277778 0.388889 1.0
NumStorePurchases 4809.0 0.436889 0.253133 0.0 0.230769 0.307692 0.615385 1.0
Dependents 4809.0 0.226087 0.183913 0.0 0.000000 0.250000 0.250000 1.0
freq 4809.0 0.481503 0.186285 0.0 0.325000 0.475000 0.625000 1.0
AcceptedCmp1 4809.0 0.078395 0.268820 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp2 4809.0 0.066334 0.248891 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp3 4809.0 0.080058 0.271412 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp4 4809.0 0.063839 0.244491 0.0 0.000000 0.000000 0.000000 1.0
AcceptedCmp5 4809.0 0.010813 0.103433 0.0 0.000000 0.000000 0.000000 1.0
Higher_Educ 4809.0 0.454772 0.498002 0.0 0.000000 0.000000 1.000000 1.0
MntGroceries_BC 4809.0 0.384387 0.326027 0.0 0.058107 0.333565 0.696192 1.0
MntStationery_BC 4809.0 0.361306 0.338765 0.0 0.063965 0.253823 0.650370 1.0
MntHouseKeeping_BC 4809.0 0.391646 0.331690 0.0 0.086272 0.287724 0.693323 1.0
MntWellnessBeauty_BC 4809.0 0.365468 0.334998 0.0 0.080837 0.242151 0.651126 1.0
MntEletronics_BC 4809.0 0.358068 0.332602 0.0 0.073166 0.240629 0.634324 1.0
MntLimitedEdition_BC 4809.0 0.412137 0.294121 0.0 0.146401 0.362380 0.648046 1.0
In [345]:
fig, axes = plt.subplots(2,2, figsize = (15,10))

sns.histplot (ax = axes[0,0], data = df_normalized, x = 'MntStationery',kde=True).set_title('MntStationery after MixMax')
sns.histplot (ax = axes[0,1], data = df_normalized, x = 'MntStationery_BC',kde=True).set_title('MntStationery after BoxCox')
sns.histplot (ax = axes[1,0], data = df_normalized, x = 'MntElectronics_&_Supplies',kde=True).set_title('MntElectronics after MixMax')
sns.histplot (ax = axes[1,1], data = df_normalized, x = 'MntEletronics_BC',kde=True).set_title('MntElectronics after BoxCox')
plt.show()

3.7 Create flag variables for the transformed variables¶

In [346]:
var_list = ['MntGroceries', 'MntStationery', 'MntHouseKeeping' , 'MntWellness_&_Beauty' , 'MntElectronics_&_Supplies','MntLimitedEdition']

for category in var_list:
    
    data_list = df_treated[category].to_list() 
    
    for idx,y in enumerate (data_list):
        if y!=0:
            data_list[idx] = 1
        else :
            data_list[idx] = 0
    name= str(category + '_flag' )
    df_normalized[name] = data_list
df_normalized.head(n=10)
Out[346]:
Age Income Mnt Recency MntGroceries MntStationery MntHouseKeeping MntWellness_&_Beauty MntElectronics_&_Supplies MntLimitedEdition ... MntHouseKeeping_BC MntWellnessBeauty_BC MntEletronics_BC MntLimitedEdition_BC MntGroceries_flag MntStationery_flag MntHouseKeeping_flag MntWellness_&_Beauty_flag MntElectronics_&_Supplies_flag MntLimitedEdition_flag
Card_ID
10003075 0.375000 0.477529 0.470755 0.666667 0.345748 0.351759 0.620311 0.041841 0.161905 0.080189 ... 0.948346 0.242151 0.700952 0.408407 1 1 1 1 1 1
10003076 0.160714 0.597906 0.584325 0.060606 0.563646 0.075377 0.588289 0.309623 0.114286 0.084906 ... 0.939702 0.843586 0.580766 0.425757 1 1 1 1 1 1
10003078 0.357143 0.492624 0.381957 0.101010 0.355197 0.442211 0.169259 0.267782 0.168254 0.377358 ... 0.583150 0.803268 0.713852 0.892181 1 1 1 1 1 1
10003079 0.428571 0.483320 0.507754 0.262626 0.448027 0.281407 0.320220 0.225941 0.171429 0.613208 ... 0.795004 0.751292 0.720069 0.968993 1 1 1 1 1 1
10003080 0.607143 0.107343 0.026446 0.656566 0.017788 0.005025 0.026532 0.008368 0.000000 0.047170 ... 0.134755 0.054748 0.000000 0.268933 1 1 1 1 0 1
10003083 0.250000 0.578832 0.565665 0.757576 0.355197 0.633166 0.493138 0.635983 0.482540 0.358491 ... 0.906227 0.972267 0.960659 0.880779 1 1 1 1 1 1
10003085 0.267857 0.513846 0.290586 0.939394 0.191217 0.618090 0.257091 0.347280 0.146032 0.066038 ... 0.725702 0.872294 0.665783 0.352695 1 1 1 1 1 1
10003089 0.214286 0.258365 0.009073 0.313131 0.006115 0.000000 0.006404 0.016736 0.006349 0.014151 ... 0.034624 0.106111 0.049466 0.090979 1 0 1 1 1 1
10003091 0.875000 0.094662 0.005855 0.373737 0.000000 0.020101 0.005489 0.020921 0.000000 0.011792 ... 0.029764 0.130598 0.000000 0.076492 0 1 1 1 0 1
10003093 0.285714 0.127666 0.018081 0.525253 0.004447 0.030151 0.010064 0.041841 0.015873 0.042453 ... 0.053786 0.242151 0.118606 0.246116 1 1 1 1 1 1

10 rows × 35 columns

3.8 Data Frame demographics¶

In [347]:
sns.scatterplot(x = 'Income', y= 'Mnt', data = df_treated , color='g',hue = "NumDealsPurchases" , palette="deep")

plt.title('Income vs Total amount spent vs Purchases using discount', color = 'k')
plt.legend(loc = 'upper right')
plt.xlabel("Income")
plt.ylabel("Total amount spent")
plt.show()
In [348]:
plt.figure(figsize=(10,6))
sns.scatterplot(x = 'Income', y= 'MntGroceries', data = df_treated ,hue = "MntHouseKeeping", palette = 'dark:salmon_r')
Out[348]:
<matplotlib.axes._subplots.AxesSubplot at 0x2015153f9c8>
In [349]:
plt.figure(figsize=(10,6))
sns.scatterplot(x = 'Income', y= 'Mnt', data = df_treated ,hue = "MntLimitedEdition", palette = 'crest')
Out[349]:
<matplotlib.axes._subplots.AxesSubplot at 0x20153eb6748>
In [350]:
plt.figure(figsize=(10,6))
sns.scatterplot(x = 'Income', y= 'Mnt', data = df_treated ,hue = 'Num_Cmp_acepted', palette = 'dark:salmon_r')
Out[350]:
<matplotlib.axes._subplots.AxesSubplot at 0x201555de908>
In [351]:
sns.scatterplot(x = 'freq', y= 'Mnt', data = df_treated , color='green' )
plt.xlabel("Number of purchases")
plt.ylabel("Total amount spent")
Out[351]:
Text(0, 0.5, 'Total amount spent')
In [352]:
sns.scatterplot(x = 'NumWebVisitsMonth', y= 'NumWebPurchases', data = df_treated , color='k',hue='Income' , palette= 'flare' )
plt.xlabel("NumWebVisitsMonth")
plt.ylabel("NumWebPurchases")
Out[352]:
Text(0, 0.5, 'NumWebPurchases')
In [353]:
dfteste=df_treated .copy()
dfteste['AcceptedCmp1'] = dfteste['AcceptedCmp1'].replace(1,'Cmp1')
dfteste['AcceptedCmp2'] = dfteste['AcceptedCmp2'].replace(1,'Cmp2')
dfteste['AcceptedCmp3'] = dfteste['AcceptedCmp3'].replace(1,'Cmp3')
dfteste['AcceptedCmp4'] = dfteste['AcceptedCmp4'].replace(1,'Cmp4')
dfteste['AcceptedCmp5'] = dfteste['AcceptedCmp5'].replace(1,'Cmp5')

dfteste['AcceptedCmp1'] = dfteste['AcceptedCmp1'].replace(0,'x')
dfteste['AcceptedCmp2'] = dfteste['AcceptedCmp2'].replace(0,'x')
dfteste['AcceptedCmp3'] = dfteste['AcceptedCmp3'].replace(0,'x')
dfteste['AcceptedCmp4'] = dfteste['AcceptedCmp4'].replace(0,'x')
dfteste['AcceptedCmp5'] = dfteste['AcceptedCmp5'].replace(0,'x')

dfteste['TotalCmp'] = df_treated ['AcceptedCmp1']+df_treated ['AcceptedCmp2']+df_treated ['AcceptedCmp3']+df_treated ['AcceptedCmp4']+df_treated ['AcceptedCmp5']
dfteste['TotalCmp'] = np.where((dfteste.TotalCmp != 0),'x',dfteste.TotalCmp)
dfteste['TotalCmp'] = np.where((dfteste.TotalCmp != 'x'),'No Cmp',dfteste.TotalCmp)
#dfteste['TotalCmp'] = dfteste['TotalCmp'].replace(0,'No Cmp')
dfteste['TotalCmp']


fig, ax = plt.subplots()
ax.scatter(dfteste['Income'], dfteste['AcceptedCmp1'], color='purple' , alpha = 0.5)
ax.scatter(dfteste['Income'], dfteste['AcceptedCmp2'], color='blue',alpha = 0.5)
ax.scatter(dfteste['Income'], dfteste['AcceptedCmp3'], color='green',alpha = 0.5)
ax.scatter(dfteste['Income'], dfteste['AcceptedCmp4'], color='orange',alpha = 0.5)
ax.scatter(dfteste['Income'], dfteste['AcceptedCmp5'], color='red',alpha = 0.5)
ax.scatter(dfteste['Income'], dfteste['TotalCmp'], color='black',alpha = 0.5)


ax.set_xlabel("Income")
ax.set_ylabel("Number of Campaigns acepted")
plt.xticks(rotation=15)
ax.set_ylim([0.5,6.5])

plt.show()
In [354]:
df_treated['Num_Cmp_acepted'].value_counts()
Out[354]:
0    3794
1     708
2     204
3      88
4      15
Name: Num_Cmp_acepted, dtype: int64
In [355]:
teen_max = df_treated ['Teenhome'].max()
teen_min = df_treated ['Teenhome'].min()

kid_max = df_treated ['Kidhome'].max()
kid_min = df_treated ['Kidhome'].min()


df_teens_kids = []
   
for k in range(kid_min, kid_max + 1):
    for t in range(teen_min, teen_max + 1):
        df_teens_kids.append(df_treated .loc[(df_treated ['Kidhome'] == k) & (df_treated ['Teenhome'] == t),'Teenhome'].count())

df_teens_kids = np.reshape(df_teens_kids, (kid_max + 1, teen_max + 1))

ax = plt.axes() 
sns.heatmap(df_teens_kids , linewidths=.5, annot=True, cmap="YlGnBu" ,fmt = "d" , ax = ax, cbar_kws={'label': 'Number of costumers'})
ax.set_title('Kids at home VS Teens at home ')
plt.xlabel('Teens at Home', fontsize = 10) 
plt.ylabel('Kids at home', fontsize = 10) 

plt.show()
In [356]:
Total=df_treated['Marital_Status'].value_counts().sum()


values = df_treated['Marital_Status'].value_counts().keys().tolist()
counts = df_treated['Marital_Status'].value_counts().tolist()

sns.barplot(x=values,y=counts, palette="deep")

ax = plt.gca()

position = 0
for value in counts:
        ax.text(position, value, '{:.1f}%'.format(value / Total * 100), color = 'black', ha = 'center', size = 'large' )
        
        position = position + 1

plt.grid(axis='y', alpha=0.5)
plt.xlabel('Marital Status')
plt.ylabel('Customer counts')
plt.show()
In [357]:
plt.figure(figsize=(10,6))
sns.scatterplot(x = 'Recency', y= 'Mnt', data = df_treated , color='green',marker="s" )
plt.xlabel("Number of days since last purchase")
plt.ylabel("Total amount spent")
plt.show()
In [358]:
Total=df_treated['Education'].value_counts().sum()


values = df_treated['Education'].value_counts().keys().tolist()
counts = df_treated['Education'].value_counts().tolist()

sns.barplot(x=values,y=counts, palette="deep")

ax = plt.gca()

position = 0
for value in counts:
        ax.text(position, value, '{:.1f}%'.format(value / Total * 100), color = 'black', ha = 'center',size = 'large')
        
        position = position + 1

plt.grid(axis='y', alpha=0.5)
plt.xlabel('Education')
plt.ylabel('Customer counts')
plt.show()
In [359]:
ax = sns.boxplot(x="Marital_Status", y="Mnt", data=df_treated ,palette="Set3")

plt.xlabel("Marital Status")
plt.ylabel("Total amount spent")
Out[359]:
Text(0, 0.5, 'Total amount spent')
In [360]:
ax = sns.boxplot(x="Education", y="Mnt", data=df_treated ,palette="Set2")
plt.xlabel("Education")
plt.ylabel('Total amount spent')
Out[360]:
Text(0, 0.5, 'Total amount spent')
In [361]:
ax = sns.stripplot(x = "Dependents", y="Mnt", data=df_treated  , jitter=0.3 ,linewidth=0.5, alpha=.5, s=5)
# ax = sns.swarmplot(x = "Dependents", y="Mnt", data=df_treated ,linewidth=0.5, alpha=.5, s=5)

plt.xlabel("Dependents")
plt.ylabel('Total amount spent')
Out[361]:
Text(0, 0.5, 'Total amount spent')
In [362]:
plt.figure(figsize=(10,6))
box_plot = sns.boxplot(x="age_bins", y="Mnt", data=df_treated ,palette="crest")

medians = df_treated .groupby(['age_bins'])['Mnt'].median()
vertical_offset =df_treated ['Mnt'].median() * 0.1 


for xtick in box_plot.get_xticks():
    box_plot.text(xtick,medians[xtick] + vertical_offset,medians[xtick], 
            horizontalalignment='center',size='medium',color='w',weight='semibold')
plt.xlabel("Age group")
plt.ylabel("Total amount spent")
plt.show()



# stats = f_stats_boxplot(df_in['TotalPurchases'])
# axPurchases_00_00.text(stats[1], -.3, '{:.1f}'.format(stats[1]), color = 'red', ha = 'center')
# axPurchases_00_00.text(stats[3], .1, '{:.1f}'.format(stats[3]), color = 'black', ha = 'center')
# axPurchases_00_00.text(stats[5], -.3, '{:.1f}'.format(stats[5]), color = 'red', ha = 'center')
In [363]:
ax = sns.catplot(x="Dependents", y="Income", data=df_treated,kind="violin")
plt.xlabel("Dependents")
plt.ylabel('Income')
plt.show()
In [364]:
lista = df_normalized['MntStationery_BC']

fig, axes = plt.subplots(2,1, figsize = (5,6),gridspec_kw={'height_ratios': [1, 4]})
g1=sns.histplot(ax = axes[1], data = df_normalized, x = 'MntStationery_BC', color="pink", bins = 30)
g2=sns.boxplot(ax = axes[0], data = df_normalized, x = 'MntStationery_BC', color="red" )
g2.set(xlabel=None)
g2.set(title='MntStationery')
res = stats (lista)

axes[1].text(0, -5.3, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
       color= 'k')
axes[1].text(0, -5.5, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
       color= 'k')
axes[1].text(0.4, -5.3, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
       color= 'k')
axes[1].text(0.4, -5.5, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
       color= 'k')

plt.xlabel("Amount spent")

plt.show()
In [365]:
# var_list= ['MntGroceries_BC','MntStationery_BC','MntHouseKeeping_BC','MntWellnessBeauty_BC','MntEletronics_BC','MntLimitedEdition_BC']

# for var in var_list:
    
#     lista = df_normalized[var]

#     fig, axes = plt.subplots(2,1, figsize = (3,7),gridspec_kw={'height_ratios': [1, 4]})
#     g1=sns.histplot(ax = axes[1], data = df_normalized, x = var, color="pink", bins = 30)
#     g2=sns.boxplot(ax = axes[0], data = df_normalized, x = var, color="red" )
#     g2.set(xlabel=None)
#     g2.set(title=var)
#     res = stats (lista)

#     axes[1].text(0, -5.3, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
#            color= 'k')
#     axes[0].text(0, -5.6, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
#            color= 'k')
#     axes[1].text(0.7, -5.3, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
#            color= 'k')
#     axes[1].text(0.7, -5.6, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
#            color= 'k')

#     plt.xlabel("Amount spent")

#     plt.show()
In [366]:
  
# Creating dataset 
Cmp = ['Cmp1', 'Cmp2', 'Cmp3', 'Cmp4', 'Cmp5'] 
OffersbyCmp = pd.Series(df_treated[['AcceptedCmp1', 'AcceptedCmp2', 'AcceptedCmp3', 'AcceptedCmp4', 'AcceptedCmp5']].sum(), name = 'Campaign')  

explode = (0.0, 0.0, 0.0, 0, 0.2) 
colors = ( "orange", "red", "deepskyblue", "green", "violet", "cadetblue","grey") 
wp = { 'linewidth' : 1, 'edgecolor' : "white" } 
  
fig, ax = plt.subplots(figsize =(10, 7)) 
wedges, texts, autotexts = ax.pie(OffersbyCmp, explode=explode, autopct='%1.1f%%', labels = Cmp, shadow = False, colors = colors, startangle = 80, wedgeprops = wp, textprops = dict(color ="black")) 

# legend 
ax.legend(wedges, Cmp, title ="Campaign", loc ="upper right", bbox_to_anchor =(0.7, 0, 0.5, 1)) 

ax.set_title("Campaings acceptance  ", fontsize=14, weight = "bold", color = "Black") 



plt.show() 
In [367]:
Mnt = ['MntGroceries','MntStationery','MntHouseKeeping','MntWellness_&_Beauty','MntElectronics_&_Supplies','MntLimitedEdition'] 
ProductUsage = pd.Series(df_treated[['MntGroceries', 'MntStationery', 'MntHouseKeeping', 'MntWellness_&_Beauty', 'MntElectronics_&_Supplies','MntLimitedEdition']].sum(), name = 'Product')  

explode = (0.0, 0.2, 0.0, 0.2, 0.2,0.2) 
  
colors = ( "orange", "red", "deepskyblue", "green", "violet", "cadetblue","grey") 
  
wp = { 'linewidth' : 1, 'edgecolor' : "white" } 
  
fig, ax = plt.subplots(figsize =(10, 7)) 
wedges, texts, autotexts = ax.pie(ProductUsage, explode=explode, autopct='%1.1f%%', labels = Mnt, shadow = False, colors = colors, startangle = 80, wedgeprops = wp, textprops = dict(color ="black")) 

ax.legend(wedges, Mnt, title ="Product category", loc ="lower left", bbox_to_anchor =(-0.4, 0, 0.5, 1)) 
  
ax.set_title("Total amount spend per category", fontsize=15, weight = "bold", color = "Black") 
  
# show plot 
plt.show() 
In [368]:
plt.figure(figsize=(8,4))
sns.scatterplot(x = 'Recency', y= 'Mnt', data = df_treated ,hue= 'Num_Cmp_acepted' ,palette ='flare')
plt.xlabel("Number of days since last purchase")
plt.ylabel("Total amount spent")
# plt.legend(loc='lower left', bbox_to_anchor=(0.6,0.5))
plt.legend(shadow=True, fancybox=True, ncol = 5, title="Number of campaigns accepted")
plt.ylim(top=4000)
plt.show()

4. Modelling¶

4.1 Clustering via K-means¶

4.1.1 Product usage segmentation¶

In [369]:
df_product_segmentation = df_normalized.copy()
# df_product_segmentation.describe().T
In [370]:
df_product_segmentation_k_means = df_product_segmentation.filter(items=['MntGroceries_BC', 'MntStationery_BC',
                'MntHouseKeeping_BC', 'MntWellnessBeauty_BC', 'MntEletronics_BC',
             'MntLimitedEdition_BC', 'MntGroceries_flag', 'MntStationery_flag' , 'MntHouseKeeping_flag' ,
            'MntWellness_&_Beauty_flag', 'MntElectronics_&_Supplies_flag' , 'MntLimitedEdition_flag']).copy()
df_product_segmentation_k_means.head(n = 5)
Out[370]:
MntGroceries_BC MntStationery_BC MntHouseKeeping_BC MntWellnessBeauty_BC MntEletronics_BC MntLimitedEdition_BC MntGroceries_flag MntStationery_flag MntHouseKeeping_flag MntWellness_&_Beauty_flag MntElectronics_&_Supplies_flag MntLimitedEdition_flag
Card_ID
10003075 0.711100 0.869938 0.948346 0.242151 0.700952 0.408407 1 1 1 1 1 1
10003076 0.868892 0.382246 0.939702 0.843586 0.580766 0.425757 1 1 1 1 1 1
10003078 0.720462 0.918590 0.583150 0.803268 0.713852 0.892181 1 1 1 1 1 1
10003079 0.798530 0.810996 0.795004 0.751292 0.720069 0.968993 1 1 1 1 1 1
10003080 0.066082 0.032585 0.134755 0.054748 0.000000 0.268933 1 1 1 1 0 1
In [371]:
inertias_list = []

kmeans_kwargs = {
        "init": "random",
        "n_init": 40,
        "max_iter": 500,        
    }

for k in range (1,15):
    kmeans = KMeans(n_clusters = k, **kmeans_kwargs, precompute_distances = True , random_state= 100) 

    kmeans.fit(df_product_segmentation_k_means)

    inertias_list.append(kmeans.inertia_)
In [372]:
#plot number of clusters
plt.plot(range(1, 15), inertias_list)
plt.xlabel("Number of Clusters")
plt.ylabel("Inertia")
plt.xticks(np.arange(1, 15, 1))
plt.grid()
plt.show()
In [373]:
#Elbow location
kl = KneeLocator( range(1, 15), inertias_list, curve="convex", direction="decreasing")
kl.elbow
Out[373]:
3
In [374]:
#After some iterations 6 cluster was established
n_clusters = 6
# Model training
model = KMeans(n_clusters = n_clusters, n_init = 40, max_iter = 2000 , random_state=100)
model.fit(df_product_segmentation_k_means)
Out[374]:
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=2000,
       n_clusters=6, n_init=40, n_jobs=None, precompute_distances='auto',
       random_state=100, tol=0.0001, verbose=0)
In [375]:
df_product_segmentation_k_means['product_clusters'] = model.labels_
df_treated['product_clusters'] = model.labels_
df_product_segmentation_k_means.head(n=5)
df_treated.head(n=5)
Out[375]:
Name Education Marital_Status Income Kidhome Teenhome Region Dt_Customer Recency MntGroceries ... Mnt freq MntFrq Num_Cmp_acepted Gender Dependents age_bins Higher_Educ Single_or_not product_clusters
Card_ID
10003075 Mr. Adam Glover Master Married 90782.0 0 0 0 11/3/2018 66 622.0 ... 1465.0 29 50.517241 1 0 0 (30, 40] 1 1 2
10003076 Mr. Cameron McDonald Phd Single 113023.0 0 0 2 4/18/2019 6 1014.0 ... 1818.0 21 86.571429 0 0 0 (20, 30] 0 0 2
10003078 Mr. Keith Davidson Phd Single 93571.0 0 1 0 7/22/2018 10 639.0 ... 1189.0 31 38.354839 0 0 1 (30, 40] 0 0 2
10003079 Mr. Alexander Gill Phd Single 91852.0 0 1 2 2/3/2018 26 806.0 ... 1580.0 35 45.142857 1 0 1 (40, 50] 0 0 2
10003080 Mr. Neil Piper Phd Married 22386.0 1 1 0 10/31/2018 65 32.0 ... 84.0 15 5.600000 1 0 2 (50, 60] 0 1 0

5 rows × 37 columns

In [376]:
variaveis = ['MntGroceries_BC', 'MntStationery_BC',
                'MntHouseKeeping_BC', 'MntWellnessBeauty_BC', 'MntEletronics_BC',
             'MntLimitedEdition_BC'] 

ax = sns.pairplot(df_product_segmentation_k_means, vars = variaveis,hue='product_clusters', palette = "tab10" , diag_kind = 'kde')
C:\Users\Tiago\anaconda3\lib\site-packages\seaborn\distributions.py:306: UserWarning: Dataset has 0 variance; skipping density estimate.
  warnings.warn(msg, UserWarning)
C:\Users\Tiago\anaconda3\lib\site-packages\seaborn\distributions.py:306: UserWarning: Dataset has 0 variance; skipping density estimate.
  warnings.warn(msg, UserWarning)
C:\Users\Tiago\anaconda3\lib\site-packages\seaborn\distributions.py:306: UserWarning: Dataset has 0 variance; skipping density estimate.
  warnings.warn(msg, UserWarning)
In [377]:
fig, (ax1, ax2) =plt.subplots(1,2,figsize =(15, 5))

sns.scatterplot(x = 'Income', y= 'Mnt', data = df_treated ,hue = 'product_clusters', palette = 'tab10' , ax=ax1)
sns.scatterplot(x = 'freq', y= 'Mnt', data = df_treated , hue = 'product_clusters' , palette = 'tab10', ax=ax2)


ax1.set_xlabel('Income')
ax1.set_ylabel('Total amount spent')
ax2.set_xlabel("Number of purchases")
ax2.set_ylabel('Total amount spent')
Out[377]:
Text(0, 0.5, 'Total amount spent')
In [378]:
# fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
# for i in range (0,6):  
#     size = df_product_segmentation_k_means[df_product_segmentation_k_means['cluster'] == i]['MntGroceries_BC'].size
#     sns.histplot(df_product_segmentation_k_means[df_product_segmentation_k_means['cluster'] == i]['MntGroceries_BC'],
#                  ax = axes[i], bins = 30 ).set_title('Cluster ' + str(i+1) +'  (N = ' + str(size) +')')
    
# plt.tight_layout()

# for i in range (1,6):
#     axes[i].set_ylabel('')  

# for i in range (0,6):
#         axes[i].set_xlim([0, 1])
# plt.show()
In [379]:
variaveis = ['MntGroceries', 'MntStationery',
                'MntHouseKeeping', 'MntWellness_&_Beauty', 'MntElectronics_&_Supplies',
             'MntLimitedEdition'] 
for var in variaveis:
    jet= plt.get_cmap('jet')
    colors = iter(jet(np.linspace(0,1,6)))
    fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
    for i in range (0,6):   
        size = df_treated[df_treated['product_clusters'] == i][var].size
        sns.histplot(df_treated[df_treated['product_clusters'] == i][var],
                     ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) +'  (N = ' + str(size) +')')
        
        res = stats (df_treated[df_treated['product_clusters'] == i][var])   
    
        axes[i].text(0.1+i*1.25, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
               color= 'k')
        axes[i].text(0.1+i*1.25, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
               color= 'k')
        axes[i].text(0.1+i*1.25, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
               color= 'k')
        axes[i].text(0.1+i*1.25, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
               color= 'k')          
    

    for i in range (1,6):
        axes[i].set_ylabel('')  

    plt.tight_layout()
    plt.show()
In [380]:
Total=df_treated['Income'].value_counts().sum()


fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,6)))
for i in range (0,6):  
    
    size = df_treated[df_treated['product_clusters'] == i]['Income'].size
    percentage = round(size/Total*100,2)
    
    sns.histplot(df_treated[df_treated['product_clusters'] == i]['Income'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
    res = stats (df_treated[df_treated['product_clusters'] == i]['Income'])   
    
    axes[i].text(0.1+i*1.22, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.22, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.22, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.22, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')


for i in range (1,6):
        axes[i].set_ylabel('')  

plt.tight_layout()
plt.show()
In [381]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,6)))

for i in range (0,6):  
    
    size = df_treated[df_treated['product_clusters'] == i]['Mnt'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['product_clusters'] == i]['Mnt'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
    res = stats (df_treated[df_treated['product_clusters'] == i]['Mnt'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,6):
    
        axes[i].set_ylabel('')  

plt.show()
In [382]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,6)))

for i in range (0,6):  
    
    size = df_treated[df_treated['product_clusters'] == i]['freq'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['product_clusters'] == i]['freq'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
   
    res = stats (df_treated[df_treated['product_clusters'] == i]['freq'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,6):
    
        axes[i].set_ylabel('')  

plt.show()
In [383]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(20, 6))
for i in range (0,6):  
    values = df_treated[df_treated['product_clusters'] == i]['Education'].value_counts().keys().tolist()
    counts = df_treated[df_treated['product_clusters'] == i]['Education'].value_counts().tolist()
    
    size = df_treated[df_treated['product_clusters'] == i]['Education'].size
    percentage = round(size/Total*100,2)
    sns.barplot(x=values,y=counts,  ax = axes[i]).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
    position = 0
    for value in counts:
            axes[i].text(position, value, '{:.2f}%'.format(value / Total * 100), color = 'black', ha = 'center', size = 'large' , va = 'bottom')

            position = position + 1
plt.tight_layout()

plt.show()
In [384]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(20, 6))
for i in range (0,6):  
    values = df_treated[df_treated['product_clusters'] == i]['Marital_Status'].value_counts().keys().tolist()
    counts = df_treated[df_treated['product_clusters'] == i]['Marital_Status'].value_counts().tolist()
    size = df_treated[df_treated['product_clusters'] == i]['Marital_Status'].size
    percentage = round(size/Total*100,2)    
    sns.barplot(x=values,y=counts,  ax = axes[i] , palette = 'hls').set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
    position = 0
    for value in counts:
            axes[i].text(position, value, '{:.2f}%'.format(value / Total * 100), color = 'black', ha = 'center', size = 'large' , va = 'bottom')

            position = position + 1
plt.tight_layout()

plt.show()
In [385]:
# df_normalized.describe().T
In [386]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(20, 6))
for i in range (0,6):  
    values = df_treated[df_treated['product_clusters'] == i]['age_bins'].value_counts().keys().tolist()
    counts = df_treated[df_treated['product_clusters'] == i]['age_bins'].value_counts().tolist()
    size = df_treated[df_treated['product_clusters'] == i]['age_bins'].size
    percentage = round(size/Total*100,2) 
    
    sns.barplot(x=values,y=counts,  ax = axes[i]).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
    
    position = 0
    for value in counts:
            axes[i].text(position, value, '{:.2f}%'.format(value / Total * 100), color = 'black', ha = 'center', size = 'medium' , va = 'bottom')
            axes[i].set_xticklabels(axes[i].get_xticklabels(), rotation=30)
            position = position + 1
plt.tight_layout()

plt.show()
In [387]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,6)))

for i in range (0,6):  
    
    size = df_treated[df_treated['product_clusters'] == i]['NumWebPurchases'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['product_clusters'] == i]['NumWebPurchases'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
   
    res = stats (df_treated[df_treated['product_clusters'] == i]['NumWebPurchases'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,6):
    
        axes[i].set_ylabel('')  

plt.show()
In [388]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,6)))

for i in range (0,6):  
    
    size = df_treated[df_treated['product_clusters'] == i]['NumCatalogPurchases'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['product_clusters'] == i]['NumCatalogPurchases'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
   
    res = stats (df_treated[df_treated['product_clusters'] == i]['NumCatalogPurchases'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,6):
    
        axes[i].set_ylabel('')  

plt.show()
In [389]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,6)))

for i in range (0,6):  
    
    size = df_treated[df_treated['product_clusters'] == i]['NumStorePurchases'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['product_clusters'] == i]['NumStorePurchases'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
   
    res = stats (df_treated[df_treated['product_clusters'] == i]['NumStorePurchases'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,6):
    
        axes[i].set_ylabel('')  

plt.show()
In [390]:
fig, axes = plt.subplots(nrows=1, ncols=6, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,6)))

for i in range (0,6):  
    
    size = df_treated[df_treated['product_clusters'] == i]['NumDealsPurchases'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['product_clusters'] == i]['NumDealsPurchases'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
   
    res = stats (df_treated[df_treated['product_clusters'] == i]['NumDealsPurchases'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,6):
    
        axes[i].set_ylabel('')  

plt.show()

4.1.2 key Insights¶

After data cleaning our data frame reamined with a total of 4809 rows (clients). In the first segmentation (product usage), a number of 6 cluster was used. Two clusters contain more than 30 % of the costumers population, as the remained 4 clusters contain between 6 to 10 % of the costumers.

Cluster (N = 1727 ; 35.91 %) - High value costumers : It is the cluster with more costumers, and represents the costumers with higher income (median = 95076) that spends more money in the store (median =1294) , and regardless of the product category;

Cluster (N = 1600 ; 33.27 %) - Low budget costumers : Also represents a large amount of the costumers, and corresponds to the costumers with less income (median = 49523) and that on majority only spend money on essential products (Groceries and house keeping).

Cluster (N = 309 ; 6.43 %) - Non stationary and books :

Cluster (N = 393 ; 8.17 %) - Non wellness and beauty :

Cluster (N = 340 ; 7.07 %) - Non eletronics :

Cluster (N = 440 ; 9.15 %) - Ocasionally essential costumers : only buys products for the groceries and house keeping categories. Visit the store not very regularly (freq median = 14), the cluster that spends less in the store (median = 58). Differs from cluster (N = 1727 ; 35.91 %), eventough they have a higher income they spend less.

4.2.1 Costumer value segmentation (Recency vs Mnt vs Freq)¶

In [391]:
df_costumer_segmentation = df_normalized.copy()
In [392]:
df_costumer_segmentation_k_means = df_costumer_segmentation.filter(items=[ 'Recency',
                 'freq','Mnt']).copy()
df_costumer_segmentation_k_means.head(n = 5)
Out[392]:
Recency freq Mnt
Card_ID
10003075 0.666667 0.70 0.470755
10003076 0.060606 0.50 0.584325
10003078 0.101010 0.75 0.381957
10003079 0.262626 0.85 0.507754
10003080 0.656566 0.35 0.026446
In [393]:
inertias_list = []

kmeans_kwargs = {
        "init": "random",
        "n_init": 40,
        "max_iter": 500,
        "random_state": 100,
    }

for k in range (1,15):
    kmeans = KMeans(n_clusters = k, **kmeans_kwargs, precompute_distances = True)

    kmeans.fit(df_costumer_segmentation_k_means)

    inertias_list.append(kmeans.inertia_)
In [394]:
#plot number of clusters
plt.plot(range(1, 15), inertias_list)
plt.xlabel("Number of Clusters")
plt.ylabel("Inertia")
plt.xticks(np.arange(1, 15, 1))
plt.grid()
plt.show()
In [395]:
n_clusters = 4
# Model training
model = KMeans(n_clusters = n_clusters, n_init = 40, max_iter = 2000, random_state=100)
model.fit(df_costumer_segmentation_k_means)
Out[395]:
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=2000,
       n_clusters=4, n_init=40, n_jobs=None, precompute_distances='auto',
       random_state=100, tol=0.0001, verbose=0)
In [396]:
df_costumer_segmentation_k_means['value_cluster'] = model.labels_
df_treated['value_cluster'] = model.labels_
df_costumer_segmentation_k_means.head(n=5)
Out[396]:
Recency freq Mnt value_cluster
Card_ID
10003075 0.666667 0.70 0.470755 1
10003076 0.060606 0.50 0.584325 2
10003078 0.101010 0.75 0.381957 2
10003079 0.262626 0.85 0.507754 2
10003080 0.656566 0.35 0.026446 3
In [397]:
variaveis = ['Recency',
                 'freq','Mnt'] 

ax = sns.pairplot(df_costumer_segmentation_k_means, vars = variaveis,hue='value_cluster', palette = "tab10" , diag_kind = 'kde')
In [398]:
fig, ax = plt.subplots()
ax = sns.scatterplot(x = 'Recency', y= 'Mnt', data = df_treated ,hue = 'value_cluster', palette = 'tab10')
plt.xlabel("Days since last purchase")
plt.ylabel("Total amount spent")


plt.legend(shadow=True, fancybox=True, ncol = 5, title="Cluster")
plt.ylim(top=4000)

for i in range (0,4):  
    size = df_treated[df_treated['value_cluster'] == i]['Recency'].size
    percentage = round(size/Total*100,2)  
    
    ax.text(1.05, 0.1+(i-0.9*i), 'Cluster:' + str(i) + '  '+ str(percentage) + ' %  ' + '(N=' + str(size) + ')', transform=ax.transAxes, fontsize=12)
In [399]:
fig, axes = plt.subplots(nrows=1, ncols=4, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,4)))

for i in range (0,4):  
    
    size = df_treated[df_treated['value_cluster'] == i]['NumDealsPurchases'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['value_cluster'] == i]['NumDealsPurchases'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
   
    res = stats2 (df_treated[df_treated['value_cluster'] == i]['NumDealsPurchases'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Mean = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,4):
    
        axes[i].set_ylabel('')  

plt.show()

4.2.2 Key insights¶

  • Cluster of recent casual buyers (28.61 %, N = 1376)
    Customers that have purchased recently, but don't spent a lot of money in the store.
  • Cluster of non-recent Premium buyers (22.13 %, N = 1065)
    Customers with high frequency and total amount spend, however they haven't made purchases in the store recently.
  • Cluster of recent Premium buyers(21.65 %, N = 1041)
    Cluster with the most valuable clients, the ones that buy frequently form the store and spend high amounts of money
  • Cluster of non-recent casual buyers (27.61 %, N = 1328)
    Cluster with the clients that have not purchased recently, nor spent a lot of money in the store.

4.3.1 Costumer segmentation by campaign acceptance¶

In [400]:
df_costumer_segmentation = df_normalized.copy()
# df_costumer_segmentation.describe().T
# AcceptedCmp1
In [401]:
df_costumer_segmentation_k_means = df_costumer_segmentation.filter(items=['AcceptedCmp1',
                 'AcceptedCmp2','AcceptedCmp3','AcceptedCmp4','AcceptedCmp5','Mnt']).copy()
df_costumer_segmentation_k_means.head(n = 5)
Out[401]:
AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Mnt
Card_ID
10003075 0.0 1.0 0.0 0.0 0.0 0.470755
10003076 0.0 0.0 0.0 0.0 0.0 0.584325
10003078 0.0 0.0 0.0 0.0 0.0 0.381957
10003079 0.0 0.0 0.0 1.0 0.0 0.507754
10003080 1.0 0.0 0.0 0.0 0.0 0.026446
In [402]:
inertias_list = []

kmeans_kwargs = {
        "init": "random",
        "n_init": 40,
        "max_iter": 500,
        "random_state": 100,
    }

for k in range (1,15):
    kmeans = KMeans(n_clusters = k, **kmeans_kwargs, precompute_distances = True)

    kmeans.fit(df_costumer_segmentation_k_means)

    inertias_list.append(kmeans.inertia_)
In [403]:
#plot number of clusters
plt.plot(range(1, 15), inertias_list)
plt.xlabel("Number of Clusters")
plt.ylabel("Inertia")
plt.xticks(np.arange(1, 15, 1))
plt.grid()
plt.show()
In [404]:
n_clusters = 5
# Model training
model = KMeans(n_clusters = n_clusters, n_init = 40, max_iter = 2000, random_state=100)
model.fit(df_costumer_segmentation_k_means)
Out[404]:
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=2000,
       n_clusters=5, n_init=40, n_jobs=None, precompute_distances='auto',
       random_state=100, tol=0.0001, verbose=0)
In [405]:
df_costumer_segmentation_k_means['cluster'] = model.labels_
df_treated['cluster'] = model.labels_
df_costumer_segmentation_k_means.head(n=5)
Out[405]:
AcceptedCmp1 AcceptedCmp2 AcceptedCmp3 AcceptedCmp4 AcceptedCmp5 Mnt cluster
Card_ID
10003075 0.0 1.0 0.0 0.0 0.0 0.470755 2
10003076 0.0 0.0 0.0 0.0 0.0 0.584325 0
10003078 0.0 0.0 0.0 0.0 0.0 0.381957 0
10003079 0.0 0.0 0.0 1.0 0.0 0.507754 1
10003080 1.0 0.0 0.0 0.0 0.0 0.026446 4
In [406]:
print('Amount of campaigns accepted ')
print(df_treated['Num_Cmp_acepted'].value_counts())
Amount of campaigns accepted 
0    3794
1     708
2     204
3      88
4      15
Name: Num_Cmp_acepted, dtype: int64
In [407]:
fig, ax = plt.subplots()
df_loc = []
df_loc = ( df_treated.loc[df_treated['AcceptedCmp1'] == 1, 'cluster'] )
df_loc = df_loc.value_counts().rename_axis('cluster').to_frame('Campaign 1')

df_loc2 = ( df_treated.loc[df_treated['AcceptedCmp2'] == 1, 'cluster'] )
df_loc2 = df_loc2.value_counts().rename_axis('cluster').to_frame('Campaign 2')

df_loc3 = ( df_treated.loc[df_treated['AcceptedCmp3'] == 1, 'cluster'] )
df_loc3 = df_loc3.value_counts().rename_axis('cluster').to_frame('Campaign 3')

df_loc4 = ( df_treated.loc[df_treated['AcceptedCmp4'] == 1, 'cluster'] )
df_loc4 = df_loc4.value_counts().rename_axis('cluster').to_frame('Campaign 4')

df_loc5 = ( df_treated.loc[df_treated['AcceptedCmp5'] == 1, 'cluster'] )

df_loc5 = df_loc5.value_counts().rename_axis('cluster').to_frame('Campaign 5')

df_loc6 = ( df_treated.loc[df_treated['Num_Cmp_acepted'] == 0, 'cluster'] )
df_loc6 = df_loc6.value_counts().rename_axis('cluster').to_frame('No campaign')

result = pd.concat([df_loc, df_loc2,df_loc3,df_loc4,df_loc5,df_loc6], axis=1)
result = result.fillna(0)

sns.heatmap(result, linewidths=.5, annot=True, cmap="YlGnBu_r" ,fmt='g')
som=pd.DataFrame(result.sum(), columns=['sum'])
ax.text(-0.8, -0.2, 'Total:',weight='semibold',fontsize = 11)
for i in range (0,6):  
       
    ax.text(i+0.2, -0.2, int(som.iloc[i]['sum']),weight='semibold',fontsize = 13)
    
# values = som['sum'].value_counts().keys().tolist()
In [408]:
fig, ax = plt.subplots()

ax=sns.scatterplot(x = 'Income', y= 'Mnt', data = df_treated ,hue= 'cluster' ,palette ='tab10')
plt.xlabel("Income")
plt.ylabel("Total amount spent")
# plt.legend(loc='lower left', bbox_to_anchor=(0.6,0.5))
plt.legend(shadow=True, fancybox=True, ncol = 7, title="Cluster")
plt.ylim(top=4000)
for i in range (0,5):  
    size = df_treated[df_treated['cluster'] == i]['Recency'].size
    percentage = round(size/Total*100,2)  
    
    ax.text(1.1, 0.1+(i-0.9*i), 'Cluster:' + str(i) + '  '+ str(percentage) + ' %  ' + '(N=' + str(size) + ')', transform=ax.transAxes, fontsize=12)

plt.show()
In [409]:
fig, axes = plt.subplots(nrows=1, ncols=5, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,5)))

for i in range (0,5):  
    
    size = df_treated[df_treated['cluster'] == i]['Mnt'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['cluster'] == i]['Mnt'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('Cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
    res = stats (df_treated[df_treated['cluster'] == i]['Mnt'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Median = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,5):
    
        axes[i].set_ylabel('')  

plt.show()

4.3.2 Key insights¶

  • Cluster (79 %, N = 3799)
    Cluster with the clients that have not purchased recently and do not aprove any campaign
  • Cluster (5.36 %, N = 258)
    Cluster with the clients that approved campaign number 4
  • Cluster (3.99 %, N = 192)
    Cluster with the clients that approved campaign number 2
  • Cluster (4.85 %, N = 233)
    Cluster with the clients that approved campaign number 3
  • Cluster (6.8 %, N = 327)
    Cluster with the clients that approved campaign number 1

With only 52 aprovables campaign #5 should not be followed

4.4 Insights of crossing the different segmentations¶

In [410]:
df_product_vs_campaign = pd.crosstab(df_treated.cluster, df_treated.value_cluster)
In [411]:
fig, ax = plt.subplots()

Costumer_labels = ['Do not accept any campaigns\n(N=3799)', 'Aceppted campaign 4\n(N=258)' , 'Aceppted campaign 2\n(N=192)' , 'Aceppted campaign 3\n(N=233)' , 'Aceppted campaign 1\n(N=327)']
Value_labels = ['Recent casual buyers\n(N=1376) ', 'Non-recent Premium buyers\n(N=1065) ' , 'Recent Premium buyers\n(N=1041) ' , 'Non-recent casual buyers\n(N=1328) ' ]



sns.heatmap(df_product_vs_campaign, linewidths=.5, annot=True, cmap="YlGnBu_r" ,fmt='g')
ax.set_xlabel('Customer value segmentation')
ax.set_ylabel('Customer campaign segmentation')
ax.set_yticklabels(Costumer_labels, rotation = 'horizontal')
ax.set_xticklabels(Value_labels, rotation = 'vertical')




plt.show()

Campanha 1 para casual buyers (pessoas que gastam pouco MNT), Campanha 2,3,4 mais viradas para premium buyers

In [412]:
df_product_vs_value= pd.crosstab(df_treated.value_cluster, df_treated.product_clusters)
In [413]:
fig, ax = plt.subplots()

product_labels = ['Non-electronics\n(N=340)', 'Low-budget customers\n(N=1600)' , 'High value customers\n(N=1727)' , 'Non-stationary/books\n(N=309)' , 'Non-wellness/beauty\n(N=393)', 'Money grubber\n(N=440)']


sns.heatmap(df_product_vs_value, linewidths=.5, annot=True, cmap="YlGnBu" ,fmt='g')
ax.set_xlabel('Product segmentation')
ax.set_ylabel('Customer value segmentation')
ax.set_yticklabels(Value_labels, rotation = 'horizontal')
ax.set_xticklabels(product_labels, rotation = 'vertical')
plt.show()

Vender produtos por catalogo focar no cluster "high value costumers"

To sell eletronic products should focus on clusters : ("high value costumers","non-stationary/books","non-wellness and beauty")

In [414]:
df_1_vs_2 = pd.crosstab(df_treated.cluster, df_treated.product_clusters)
In [415]:
fig, ax = plt.subplots()


sns.heatmap(df_1_vs_2, linewidths=.5, annot=True, cmap="YlGnBu" ,fmt='g')
ax.set_xlabel('Product segmentation')
ax.set_ylabel('Campaign segmentation')
ax.set_yticklabels(Costumer_labels, rotation = 'horizontal')
ax.set_xticklabels(product_labels, rotation = 'vertical')
Out[415]:
[Text(0.5, 0, 'Non-electronics\n(N=340)'),
 Text(1.5, 0, 'Low-budget customers\n(N=1600)'),
 Text(2.5, 0, 'High value customers\n(N=1727)'),
 Text(3.5, 0, 'Non-stationary/books\n(N=309)'),
 Text(4.5, 0, 'Non-wellness/beauty\n(N=393)'),
 Text(5.5, 0, 'Money grubber\n(N=440)')]

4.5 Clustering with Gaussian mixture vs Agglomerative Clustering¶

In [416]:
df_costumer_segmentation_2 = df_normalized.copy()
# df_costumer_segmentation_2.describe().T
In [417]:
df_costumer_segmentation_2= df_costumer_segmentation.filter(items=['NumDealsPurchases',
                 'Mnt','Income']).copy()
df_costumer_segmentation_2.head(n = 5)
Out[417]:
NumDealsPurchases Mnt Income
Card_ID
10003075 0.166667 0.470755 0.477529
10003076 0.166667 0.584325 0.597906
10003078 0.500000 0.381957 0.492624
10003079 0.166667 0.507754 0.483320
10003080 0.833333 0.026446 0.107343
In [418]:
from sklearn.mixture import GaussianMixture
In [419]:
# import hierarchical clustering libraries
import scipy.cluster.hierarchy as sch
from sklearn.cluster import AgglomerativeClustering
In [420]:
clustering = AgglomerativeClustering(n_clusters=4).fit(df_costumer_segmentation_2)
In [421]:
df_treated['value_cluster2'] = clustering.labels_
df_costumer_segmentation_2['value_cluster2'] = clustering.labels_
df_costumer_segmentation_2.head(n=5)
Out[421]:
NumDealsPurchases Mnt Income value_cluster2
Card_ID
10003075 0.166667 0.470755 0.477529 3
10003076 0.166667 0.584325 0.597906 3
10003078 0.500000 0.381957 0.492624 1
10003079 0.166667 0.507754 0.483320 3
10003080 0.833333 0.026446 0.107343 0
In [422]:
fig, (ax1, ax2) =plt.subplots(1,2,figsize =(15, 5))

sns.scatterplot(x = 'Income', y= 'Mnt', data = df_costumer_segmentation_2 ,hue = 'value_cluster2', palette = 'viridis',alpha = 0.8, ax=ax1)
ax2.scatter(df_costumer_segmentation_2['Income'], df_costumer_segmentation_2['Mnt'],  
           c = GaussianMixture(n_components = 4,  random_state = 100, covariance_type='full').fit_predict(df_costumer_segmentation_2),s=40, cmap='viridis',alpha= 0.8 )

ax1.set_title('Clustering with Agglomerative Clustering')
ax2.set_title('Clustering with Gaussian mixture')
ax1.set_xlabel('Income')
ax1.set_ylabel('Total amount spent')
ax2.set_xlabel('Income')
ax2.set_ylabel('Total amount spent')
plt.show()
In [423]:
fig, axes = plt.subplots(nrows=1, ncols=4, figsize=(17, 6), dpi=300)
jet = plt.get_cmap('viridis')
colors = iter(jet(np.linspace(0,1,4)))

for i in range (0,4):  
    
    size = df_treated[df_treated['value_cluster2'] == i]['NumDealsPurchases'].size
    percentage = round(size/Total*100,2)
    sns.histplot(df_treated[df_treated['value_cluster2'] == i]['NumDealsPurchases'],
                 ax = axes[i], bins = 20 ,color=next(colors)).set_title('value_cluster ' + str(i+1) + '\n' +'  (N = ' + str(size) +') ' + str(percentage) + '%')
    res = stats2 (df_treated[df_treated['value_cluster2'] == i]['NumDealsPurchases'])   
    
    axes[i].text(0.1+i*1.2, -0.15, 'Mean = ' + str(res[0]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.2, 'Skewness = ' + str(res[3]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.25, 'Q1 = ' + str(res[1]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    axes[i].text(0.1+i*1.2, -0.3, 'Q3 = ' + str(res[2]), transform=axes[0].transAxes, fontsize=10,
           color= 'k')
    
for i in range (1,4):
    
        axes[i].set_ylabel('')  

plt.show()
In [ ]: